{
 "metadata": {
  "name": "",
  "signature": "sha256:ae9eeecb4861554fc335f71cafefc5e1af05964d717c6b335b83ab4f4d975449"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from nilmtk import HDFDataStore, ElecMeter\n",
      "from nilmtk.stats import TotalEnergy, DropoutRate\n",
      "\n",
      "ds = HDFDataStore('redd.h5')\n",
      "\n",
      "ElecMeter.meter_devices.update({\n",
      "    'test model': {\n",
      "        'sample_period': 10,\n",
      "        'max_sample_period': 30,\n",
      "        'measurements': [{'physical_quantity': 'power',\n",
      "                          'type': 'apparent',\n",
      "                          'lower_limit': 0,\n",
      "                          'upper_limit': 50000}]\n",
      "    }})\n",
      "\n",
      "meter = ElecMeter(ds, {'data_location': '/building5/elec/meter1',\n",
      "                       'device_model': 'test model',\n",
      "                       'preprocessing_applied': {'clip': True}})\n",
      "\n",
      "source = meter.get_source_node()\n",
      "\n",
      "total_energy = TotalEnergy(source)\n",
      "total_energy.run()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Couldn't import dot_parser, loading of dot files will not be possible.\n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "total_energy.results.to_dict()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 2,
       "text": [
        "{'statistics': {'energy': {'apparent': 30.793646871022119}}}"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from nilmtk.preprocessing import Clip\n",
      "\n",
      "source = meter.get_source_node()\n",
      "clip = Clip(source)\n",
      "total_energy = TotalEnergy(clip)\n",
      "dropout_rate = DropoutRate(total_energy)\n",
      "dropout_rate.run()\n",
      "\n",
      "print(total_energy.results.to_dict())\n",
      "print(dropout_rate.results.combined())"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "{'statistics': {'energy': {'apparent': 30.793646871022119}}}\n",
        "0.202210726725\n"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "for chunk in meter.power_series():\n",
      "    print(chunk.head())"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "2011-04-18 00:24:03-04:00    115.830002\n",
        "2011-04-18 00:24:04-04:00    115.940002\n",
        "2011-04-18 00:24:05-04:00    115.800003\n",
        "2011-04-18 00:24:06-04:00    115.989998\n",
        "2011-04-18 00:24:07-04:00    115.739998\n",
        "Name: (power, apparent), dtype: float32\n"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "clip = Clip()\n",
      "clip.upper = 10\n",
      "clip.lower = 0\n",
      "for chunk in meter.power_series(preprocessing=[clip]):\n",
      "    print(chunk.head())"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "2011-04-18 00:24:03-04:00    10\n",
        "2011-04-18 00:24:04-04:00    10\n",
        "2011-04-18 00:24:05-04:00    10\n",
        "2011-04-18 00:24:06-04:00    10\n",
        "2011-04-18 00:24:07-04:00    10\n",
        "Name: (power, apparent), dtype: float32\n"
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from nilmtk import DataSet\n",
      "\n",
      "dataset = DataSet()\n",
      "dataset.load(ds)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 6,
       "text": [
        "<nilmtk.dataset.DataSet at 0x7ff0cfcfa350>"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 6
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import nilmtk\n",
      "nilmtk.global_meter_group.select(site_meter=True)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 7,
       "text": [
        "MeterGroup(meters=\n",
        "  ElecMeter(instance=1, building=1, dataset='REDD', site_meter, appliances=[])\n",
        "  ElecMeter(instance=2, building=1, dataset='REDD', site_meter, appliances=[])\n",
        "  ElecMeter(instance=1, building=3, dataset='REDD', site_meter, appliances=[])\n",
        "  ElecMeter(instance=2, building=3, dataset='REDD', site_meter, appliances=[])\n",
        "  ElecMeter(instance=1, building=2, dataset='REDD', site_meter, appliances=[])\n",
        "  ElecMeter(instance=2, building=2, dataset='REDD', site_meter, appliances=[])\n",
        "  ElecMeter(instance=1, building=5, dataset='REDD', site_meter, appliances=[])\n",
        "  ElecMeter(instance=2, building=5, dataset='REDD', site_meter, appliances=[])\n",
        "  ElecMeter(instance=1, building=4, dataset='REDD', site_meter, appliances=[])\n",
        "  ElecMeter(instance=2, building=4, dataset='REDD', site_meter, appliances=[])\n",
        "  ElecMeter(instance=1, building=6, dataset='REDD', site_meter, appliances=[])\n",
        "  ElecMeter(instance=2, building=6, dataset='REDD', site_meter, appliances=[])\n",
        ")"
       ]
      }
     ],
     "prompt_number": 7
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "nilmtk.global_meter_group.select_using_appliances(type='fridge')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 8,
       "text": [
        "MeterGroup(meters=\n",
        "  ElecMeter(instance=5, building=1, dataset='REDD', appliances=[Appliance(type='fridge', instance=1)])\n",
        "  ElecMeter(instance=7, building=3, dataset='REDD', appliances=[Appliance(type='fridge', instance=1)])\n",
        "  ElecMeter(instance=9, building=2, dataset='REDD', appliances=[Appliance(type='fridge', instance=1)])\n",
        "  ElecMeter(instance=18, building=5, dataset='REDD', appliances=[Appliance(type='fridge', instance=1)])\n",
        "  ElecMeter(instance=8, building=6, dataset='REDD', appliances=[Appliance(type='fridge', instance=1)])\n",
        ")"
       ]
      }
     ],
     "prompt_number": 8
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "dataset.buildings[1].elec['fridge']"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 9,
       "text": [
        "ElecMeter(instance=5, building=1, dataset='REDD', appliances=[Appliance(type='fridge', instance=1)])"
       ]
      }
     ],
     "prompt_number": 9
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "dataset.buildings[1].elec"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 10,
       "text": [
        "MeterGroup(meters=\n",
        "  ElecMeter(instance=1, building=1, dataset='REDD', site_meter, appliances=[])\n",
        "  ElecMeter(instance=2, building=1, dataset='REDD', site_meter, appliances=[])\n",
        "  ElecMeter(instance=5, building=1, dataset='REDD', appliances=[Appliance(type='fridge', instance=1)])\n",
        "  ElecMeter(instance=6, building=1, dataset='REDD', appliances=[Appliance(type='dish washer', instance=1)])\n",
        "  ElecMeter(instance=7, building=1, dataset='REDD', appliances=[Appliance(type='sockets', instance=1)])\n",
        "  ElecMeter(instance=8, building=1, dataset='REDD', appliances=[Appliance(type='sockets', instance=2)])\n",
        "  ElecMeter(instance=9, building=1, dataset='REDD', appliances=[Appliance(type='light', instance=1)])\n",
        "  ElecMeter(instance=11, building=1, dataset='REDD', appliances=[Appliance(type='microwave', instance=1)])\n",
        "  ElecMeter(instance=12, building=1, dataset='REDD', appliances=[Appliance(type='unknown', instance=1)])\n",
        "  ElecMeter(instance=13, building=1, dataset='REDD', appliances=[Appliance(type='electric space heater', instance=1)])\n",
        "  ElecMeter(instance=14, building=1, dataset='REDD', appliances=[Appliance(type='electric stove', instance=1)])\n",
        "  ElecMeter(instance=15, building=1, dataset='REDD', appliances=[Appliance(type='sockets', instance=3)])\n",
        "  ElecMeter(instance=16, building=1, dataset='REDD', appliances=[Appliance(type='sockets', instance=4)])\n",
        "  ElecMeter(instance=17, building=1, dataset='REDD', appliances=[Appliance(type='light', instance=2)])\n",
        "  ElecMeter(instance=18, building=1, dataset='REDD', appliances=[Appliance(type='light', instance=3)])\n",
        "  ElecMeter(instance=19, building=1, dataset='REDD', appliances=[Appliance(type='unknown', instance=2)])\n",
        "  MeterGroup(meters=\n",
        "    ElecMeter(instance=3, building=1, dataset='REDD', appliances=[Appliance(type='electric oven', instance=1)])\n",
        "    ElecMeter(instance=4, building=1, dataset='REDD', appliances=[Appliance(type='electric oven', instance=1)])\n",
        "  )\n",
        "  MeterGroup(meters=\n",
        "    ElecMeter(instance=10, building=1, dataset='REDD', appliances=[Appliance(type='washer dryer', instance=1)])\n",
        "    ElecMeter(instance=20, building=1, dataset='REDD', appliances=[Appliance(type='washer dryer', instance=1)])\n",
        "  )\n",
        ")"
       ]
      }
     ],
     "prompt_number": 10
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec = dataset.buildings[1].elec"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 12
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec['fridge'].plot()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAENCAYAAADjW7WQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXn83US58L+/AoVK2XqBLggCshYqIAgI5XIUxSogiF6B\n60VRRF4REXj1WlRee5HLVRQtoCAqXEAURRRFKJvQsK+FsrWFtlDsRsvWltIWuuT940manPNLTrZJ\nZpIz38/n9zvJZJZnnkyeTJ6ZTMBisVgsFovFYrFYLBaLxWKxWCwWi8VisVgsFovFYrFYLBaLxaKZ\nrYGJwLPAM8BpXvg4YA7whPf38VCas4DpwDTg0FD43sDT3rELyxRaEy3dAmimpVsAA2jpFsAAWroF\n0ExLtwBFGQbs6W0PBp4DdgW+D5wZEX8kMBlYD9gWmAH0ecceAfb1ticAY0qRWB/jdAugmXG6BTCA\ncboFMIBxugXQzDjdAiQxIOH4y4gRB1gKTAW28vb7IuIfCVwLrARmIUZ/P2A4sBFi+AGuBo7KK7TF\nYrFY8pFk9MNsC+wFPOTtfx14Ergc2NQLG4G4fXzmIDeJzvC5BDcPi8VisVTEuinjDQauB76B9Pgv\nBc7xjv0AuAA4UYE8LUI+sfe+973fnzlzpoJsK+P7ugXQTK/XH6wOwOrAhPo/Cfw1tO94f6mM/nrA\nn4FrQpksDB3/DfB3b3suMvjr826khz/X2w6Hz40oa61gADNnzvy+67opRNSP4zi0Wi3dYmij1+sP\nVgdgdWBK/fv6+vYgGI9tI8m904e4b6YA40Phw0Pbn0Jm5QDcCBwLDAS2A3ZE/PgvA0sQ/34fcDzt\ndyGLxWKxVEDUYGyY0cA9wFOA3+X+DnAcchdxgReBk4EFoeNfAlYh7qDbvPC9gSuBQcjsHX/6Zzfc\nuvT0LRaLxRT6+vogxr4nGX3dWKNvsVgsGelm9LPM3rF0wXEc3SJopdfrD1YHYHVQh/pbo2+xWCw9\nhHXvWCwWS8Ow7h2LxWKxANboK6MOvrwy6fX6g9UBWB3Uof7W6FssFksPYX36FTFnDpx3HlxyiW5J\nLBZL07E+fQOYMAEuvVS3FBaLpdexRl8RdfDllUmv1x+sDsDqoA71t0bfYrFYegjr06+IX/0KTj4Z\nGlKdSlm9GtZZR7cUFkt9sD59S61Zd11YvFi3FBZLM7BGXxF18OWVSdn1X7681OyV0OttAKwO6lB/\na/QtFoulh7A+/Yr49a/hK18xx6f/0kuwdCnstptuSZLp64P582HYMN2SxLN6NaxcCRtsoFsSi8X6\n9C0RHHII7L67bimaw7e/DYMG6ZbCUgdcF264QV/51ugrwjRf3urV8OKL/cOvvFIa3apVasszrf5V\n8+yzEPq8c8/S6+0gTf3ffhuOPrp8WeKwRr+hXHklbL99//AvflFuCHXDFLeYxVJ3rNFXRKvV0i1C\nG1VPcTSt/npo6RYgFb/6FVx0UTl593o7qEP9rdG3aOfhh3VL0Fucdhp84xu6paiOVavEpWIRrNFX\nRJIvr8/0eVIFKeLL3X9/eOstdbLow9EtgHZM9Ol//vPw7nfDwIEwY0a5ZZlY/06s0bcYgfXZW8pi\n8mR49VWZUjt1qm5p1PPzn8Ntt6WPb42+Iurgy/Nx3eQnj74+eP759HnWqf7l0dItgHZMagc6DLyO\n+n/96/Ctb6WP3/NG/6ab4NFHdUthJvPm6ZYgwPQngaLuu9dft+sLqWTKFBg5Mv74Sy9V36beeaf/\njWjRIpg0KTntsmWwYoUaOXrS6M+fD3/7m2wfcQR87nPF89Thy1u+HJYsiT6mYgzhiCPSx+1W/7/8\nBUaNKi6P+Ti5U+68Mxx0kDpJdGGKTztp4HbbbeH66+H009WW263+F17Y/0Y0dizss09yvjvuCIcf\nXkw2n8YYfX/u+R/+ALNmdY/7gx/AUUeVLlJmZs/OFv/ww2GbbcqRBWSZBhV8+tPwzDPd45jeky+b\nV19NbrdNpq9P2kiV7WDOHDHEKujrg8ce6x4n6np65510+c+bB3femV2uKBph9G+7TZbfBTjuODHq\nVZPky0vqea9ald2AT59ujkvAJF+uPlqVlDJzZrH0Zc4kK9IORo3KbtgcJ/rNcx1Mm5au/ln077rp\n3D9ZaITRf+EF3RLUj6ZPIW0qL70EO+ygW4ryiHNXxvGhD8GXvpQ+ft2eKO+5J537J0u9GmH0TcAU\nX2Yaymj4dap/eTill6DyJaNp09Tl5WNiO6iyg6O6/mndP1mwRr+hNK0nb3oPrY76Hj1atwQWHVij\nT2BQ/vKX/Mal133avV5/oVUotek3tjT0ejuoQ/2t0fdYsUJmmdRpjQ4VvctXXsnuRy2DJhg8S3FU\ntQMd7SmpTFOeBpOM/tbAROBZ4BngNC98CHAH8DxwO7BpKM1ZwHRgGnBoKHxv4GnvmKKJUtHkUf4n\nP1mszKJr74SPf+QjcgOqgmHD4BOfKJ5PFl/m8uXwxhvFyzQPp/QSTDEccaRpB2++Wb4caejVsa0k\no78SOAPYDdgf+BqwKzAWMfo7AXd6+wAjgWO83zHAJQSf7LoUOBHY0fsbo6oSKvAHtQ44QK8cINPW\nbrml3DJ847FmjcxXrpJjj4UhQ6ot0xKQ9sZx+OFwwQXqy994Y7j1VtmeNg3OPlt9Gb2Gytk7LwOT\nve2lwFRgK+CTwFVe+FWA/6rTkcC1yM1iFjAD2A8YDmwEPOLFuzqUxiieeCJfujr48nzK6OFkqX+e\nedX1cP+0dAuglJtvhmuvzZYmbTuYP19+r7gCzj03WxmqKOOpKasd0PHklsWnvy2wF/AwMBRY4IUv\n8PYBRgDhfuMc5CbRGT7XC1dCUcUtW5b9bVjTMd0NYNFPPW6kyWSphwl1jro2q3R5pTX6g4E/A98A\nOsVzvT8VtIBxob82H5njOIn7Yb9q2vjBwmLZ0/v7/na3+JD+uOsml79iRXd5o8pr9ztnT1+k/p37\nBxyQLb7J+3Ihjy+U39KlDmPHdo//8MPq5F+5Mrk9vvlmtvzHjx+/dv/KKx1uvbV7/H/+s728Z57J\nVl6a9hsYWYennw6Oz5jRPX3W/SlT2uvfeXzWrP7lzZ8v+xtvHJ3/k0/2r09aeWi3pS0ysB5wGxBe\nmmgaMMzbHu7tg/j2x4bi3Yq4d4YhriGf44BfpijbTcOll7quHxVc94tf7B7/lFPa43f+5WHixImx\nxw49NDnvVavaZdpgg+Qy3/Oe+DzHj48+Bq67YoXrbr99INM220THy6KLbvXvzGvUqPYwcN1Fi+Lz\nBtedPTu9LDo47DDXhYm50/v62Hrr7vGmT8/fRn0GDZI8hgxJlmnvvbPlHW4H4Lpjx0bne8UVsv2t\nb7Vfe3/6U7bywHUPPrh/+KRJgZ522y3I/69/DdL99KfFdRmW46qrul8H48ZJvLffDsr90pe6X2t3\n3JFsm0Dq2B4W3xFP6un3AZcDU4DxofAbgS94218A/hoKPxYYCGyHDNg+gowNLEFuAH3A8aE0lVO1\nL+/225PT190dU6cxjfJo6RZAO53tYNmy6HgmuFnKQNd1kEWf6yYcPxD4D+ApwB/iPAv4IXAdMhtn\nFvBZ79gUL3wKsAo4heCOcwpwJTAImIA8BZRCUxuUKtJ8RKVM6n6DayoLFsCWW9rz03SSevr3eXH2\nRAZx90KM9evAR5Apm4cCi0JpzgN2AHZB3EI+k4BR3rHTaBgdvrSeo+z61+NG7ugWIBVxRn3YMPmo\nUBGytoOm3WBUXwdltHv7Rq6hFD3ZTbuYTOTLX5YX6Trp6wumJGalyptbVFmvvVZd+RY9JLl3aoEJ\nBk6VLy/LRa+q3ioMTd7616MHH82NN8oyFgGttVuvvQbDh6svs+q2nvX8dLaDrOnLbg9l5u+69Rjb\nsj19S6k8/ni6eHU2/mBGx6NOqDzf4bz6+vp/WMiUc2OKHD1p9MtQvvXpO5Hhd91VrRx6cXQLoIy8\nn+E04TrQua5TmvqH7Y+Op/WeNPp1oOzHUDt7p1wmTZKvXNUNv91V9YZ6L7QF02ik0dfhKqiDL69M\nyq6/ie6f/gartXbrhBPgyCOrKNMsTLkO4tpLmfpbudKc+nejEUbfRINQBd0acNbG7bqwdGkxefLQ\nq+cujir0UeWNo5fO70knqc+zjHPVCKNvAqp8mZ0XyeDB4iooE9eV1Q432ih/Hib4cvXj6BYgEyau\nJ1/3m0QdrgNr9A3nrbfKN/oAs2aVk2/ankrdL3bT3S6moet862xnprSRRhj9rMo0YR3tJOpmBOvg\nyyyflm4BtGPievJVGts6rL3TCKNvyYadvaOGpHqUceMuW3d162xYsmONviLq4MsrE7v2Dqjw6ZtW\nz6zydLaDKurTWYbOTk0d7EAjjX7TvoKVZ/pZlkav09CYZuR6gaY8adWVLC9n2QXXUqLjLVDVa+9U\nbQyLGoK4+vfKQK7Q0i1AJnR+KzmubFUy6WpPdRjbaqTRt1iqwPaYLVkwpb30pNHv9bV3dM/PNqXx\nq0Tq5LSF1XEgtyh2PX1HS7l29o4lkW4X25o11clhaUe3m0t1+brr04lp8iRh38iNwYTeQpm+vLLX\nEQnPdliyBNZZJ3seeX36aS/CelysLd0CaMdEn3YvzNPPQiOMfpNQNZCbt6GvWFGs3F7ChM5GXSl7\nINcSjzX6iqiTT78Men3NFcHRLUAqyrxZ6bgOoubp66IOdsAafYulJEwfyE0jX9kGtJeflsr6elgS\nPWn067D2Tpg6DK5lqX9zL/RW4Rzmz4dvfrO4JHkp2jZM8WmbOE/flHZfW6O/YoVcIE2l6h6Wv6+6\nYZrS0Mug89usqrjuOnV56aYZbrvy0HF91Nbon3EGjBihW4oAHb48Hd/XjCNv/es8e+fllztDHA1S\nmIXpPu2y25Hp9YcaG/0FC4rn8cEPFs9DNaoaZZN72L1MU85rlbN3mqIzVdTW6IfJe1IfekidDKb4\nMnVRtP4m9uSz02rby1unOuvCxPX0q6QOdqARRr/p1NkI1Fn2puIb2iafm6bdTJLoudk7WRtvHdbe\nKfOCjMq76EBuXP3PPDO+rObh6BagMEXbnY719E2imx0wpd3X1uibokCdFNFBOK1dT99SZ0x6OasO\n1Nbom4bq9fTrRtm+TNP1IjfRVkXlVEdWvZexnn6ejyKZOE+/E10yWqPfUOyTkH56cSA3K0nt9Lnn\nYJttqpGlV0hj9K8AFgBPh8LGAXOAJ7y/j4eOnQVMB6YBh4bC9/bymA5cmFtiQynTp1+lEVDt009L\nMwydo1sA7ai+DpYvL55HlR2gOnxPII3R/19gTEeYC/wU2Mv7u8ULHwkc4/2OAS4B/GpdCpwI7Oj9\ndebZE4wdq1uC7gO5VWCfQtRx9NFw/PHF8njjDbjFu4LrsOSHpT+qZ+/cC7wRER516R4JXAusBGYB\nM4D9gOHARsAjXryrgaPSixlReIaPC3dLq4q0vrzf/EZdmSa9kVuH+cnl06q8xBtugD/9KVuazimb\nQ4bAJz6hRp5ebwdNX3vn68CTwOXApl7YCMTt4zMH2CoifK4XbtGEKQ3Q9gT7000n/nl76qlqZCkL\n1ef96adh0SK1eTaVdXOmuxQ4x9v+AXAB4ropSouO7pLjOLRaLV55BZ591pFIa++mDpddBgMGtNbG\nDbIJ9v34nccDH2z0flz6qP2wL69beStXxucPDhKUrj7LlnU/7ueXpf733de+H5W+c3/0aKn/ul5r\niisvqvy7746XPxzfdYP9vfZqMWgQPPCAwznnwAc+0OJHP8p2vlTsh/Unxng8jrPn2vq89VY6/UXl\nFxf/lVfkuOPA668nx4/a9+OvWtXe3sDhuefa95cuhWeeaXHNNTBmTHL+kydP5vTTT1+bft68/vKF\n92fNai/v2Wfbj8+YkVw/aPG+90n6cP6d1xM4PPMMHH207M+Y0V+epPp12weH8eOD+vvHhw9vsf76\n8MIL/cuL0k84/yef7F+fpOsr9LQxjgCHjINO29I+kBt3bKz353Mr4t4ZBkwNhR8H/DJFua7ruu7k\nya7rba7l05+WMHDdX/0qOO6HdeOMM4J4UX95mDhxYuyxcN5DhkTHWb1ajq9Y0S4HuO7FF0en2Wmn\neHkvvTT6GLju4sWuu+uuQTlDh7ruOefI9muvZdfFUUe57vDhEyOPReW1zz5BmF/fhQvj8wfXnTGj\nff+EE4LtoUPTyamacL0+9SnXhYlt4bvu6rrnnee6f/97+rzAdUeMiI83e7bEufDCIN3Agdnk3mQT\nSTd4cP+yL7usPWyPPYLrJQ3h6wBc9+ST+8cB1/3FL1x3zRrXPfvs9vKvuaY9btS135nXAQe05zF9\nuus++miQbs89g2N//nOQ7qc/zX+9R8kB0XbAb6PnnSfbK1fK7+rVrvuVr3S/1v7xj+TrEVx3hx06\nw4h9lsrr3hke2v4UgdG/ETgWGAhshwzYPgK8DCxBbgB9wPHAX9MWtnhxTikrpA6+vLJ49FGYP79V\nKI+sj/szZxYqriRa/UK+8x0YN678km+6yYzrpPM6iDuvX/sa/DJNty8nZS3clrTQY5wdeOcd9fLk\nJY3RvxZ4ANgZmA18CfgR8BTi0z8YOMOLOwW4zvu9BTiF4I5zCvAbZMrmDOQpIDcmGVIVK36qoq8P\nli3rHkenH3377eGxx/SVXwfS+PQ74xxxBPziF/HpJk3Ccy1mK7vMtvJ0nO8ghOrrvGh95s5VIwek\nkyWtvKpn7xyHDMQOBLZG5u1/HngfsAcyCyds9s4DdgB2AW4LhU8CRnnHTksvYnHOPhtuvrm8/IcN\ng5tvdsorIIa4CyLrx83VXNhOqlgvvqi+bHMGgx3dAsSyzz79Z46VoTfV8/RVkPXGMWIEXH55vrLs\n2juKSFJW0vFzz4Uf/Sh9/G689FJ0+tWr06VPutCijpf1qJolPE9eKqnz+iply5o2/7ffll8TpjjH\noUpXRWSePx9vgkF+XBduv7193xTyzt7pWWS2QX9Gj25VKUZXzjwTbxZGevyL5P3vz1tqK2/CBtFq\n2yvzQq+qc5CVrGvPmNL79Skqj1//uXPhYx9LPic66m+NfgX09VV7QV51Vf60cTe1ZcukHoMG5c+7\nGyYYrCKovHhN1sWSJbDJJuX4mqH/+wdlGsU8eZdV7yqphXsniqwnrOyTcO+9Tqly9PXBww/nS6uC\nvfeGgw7qFsOpSBIhrEdzLjCn9BKi2r1KQ5QU5803ux8v6tP/8Y8LJc9Et7rmbVNp6r9qVb68u6F6\nIFc7pj0C6kJVLyiPf3zatPjZFvb8dMecm1I+7PktTrgNnH++PjmgJka/DpTp06+H0WjlSlWPuqWl\nVVlJKnz6Zehex3ryUZ2YuLzLbm9+/aNulH6YvIWbjjJuuD1p9NMo8v779bhTqjKCnTpIoxOdBrqM\nR/GyiZJrwoR08+V7haIz81SU0WvU1uiX7dMfPRoOPjh9uffd58TmperThKYaN8GptDQzdeEkxjjs\nMPj737vHKavH7sdT9ZnNKDp92q4rbsky/NhlkvdJIcuYhq42XAujX0VvwJIfFfo304irQWXddHwu\nsWiZe+wBv/udGnnqikntuxZGPwkTFHrggS3dIqSmnBedWioyqS1VfSPXp6x5+kXziPPpq/gCVlmo\ntB/dfPpl0rjZO1GkWbejKCbcTCCQo1MekxtWlXmacp7SUjd5w1T9PoJ9ildPLYx+1ImfOrV/WDfK\nvtC6+fSzyKHLIBT38zqKJEmHmYbTadvLK2PZPv0yifNpm3m+4inDp+9fY1m++leG3mph9FVT5kCW\n6vLKwkSZulE3oxGmDJ++qVM2s6LzabXM+nfWK+siiGXSk0a/DKrw6eu+SLuX36pICpNplZLrddep\nXXu+zAXX0q6nr5KkefpV3ljixjTSLshYBY02+g88ICvm5UW3ke0livRS63aessp7yinw1a+WI0tW\nVL0FHhemqrym0LMvZ+Wt+IEHwkknyXZdfPpRxD0aVrkMQzd0+PRNQ6UOdPr0i7YFU9bT13Wz+O1v\nncgvmJmyvDbUxOgn0fTewHe/W34ZunRYt156FuJmXanMOynM0k7adp53IPfzn5cns85yTDpfjTD6\nVRLXaLr59LMY1KiG4PsDdV/U1qefRKuUXLPM9lBN58tZSeXH+bS/9rXo+M178bKVuBKp7jrVwugX\nUVKUoSp6ty+CbsPto7Lh6f5ylik6TYtqeauaGqq6DFPOm671rnRRC6OvgrJP7P33O+UWYDyObgEM\nwNEtQFd0ztPvHZzIpStMucFBQ4y+CQrV0WtS1XNIu75KmXU04RyWRRkDs0V8xN3OdZPPA6R/Qqxb\n77/nBnJ10dcXLAdR57V31NDKlapZyzC0SslVt1tAhU8/L0krksZR1jz95LbWUldYSdTC6Kv26atM\n+/zzyXFULa1sKjqMkml6zPIZwyKy674BqCTNE+YVV6TLp3M/7lvPlpoYfRWoMhJxjVSVT980Y5Ye\nR7cABuBEhvbSlM2o9fR1cMwxesqN8+mH0X3j7hmjH0a30vOie112nUbFBINWFWWO3RSl6munSe+P\nmGJ3Gm/0q3oT7oADWuUWVDLFG2SrUOqy3XDV0NItQCZUDPx2otqnb4qh9FHp08/TblW09VoY/Sbd\n7XX31qNkULMMQ7WYY+izY7JPX3XbyFJWFDreATEtP9Vl1sLoq6DsE/HAA07sMZMez8vDyZXK7Dpl\nxWnbU7UMQ9pB4jJ67lkxfZ5++e3NAcx7QgnTM0ZfFXEnU1VjapYRtOShrDagw6efVGYVyzDUbfyq\nbGph9It8Xcb69Mun6u/DgnnLMOjQQVU01aev630V3U8BtTD6qrFr7/TXge6GmIQpelNB2rp885vy\na/q50Y1p4xBxUzbThpVNGqN/BbAACH+KfAhwB/A8cDuwaejYWcB0YBpwaCh8by+P6cCF+UXOh06f\nvipMnspXdJ5+M4y6Exmat24XXNA/rPNziUVe/MszLpDU5rL49E0ZyFWLU2ruVc3e+V9gTEfYWMTo\n7wTc6e0DjASO8X7HAJcA/mm7FDgR2NH768yzFKoyJt3KMa3hmmRgTZJFNaatfqlb13nKb9LMvTJR\nPXvnXuCNjrBPAld521cBR3nbRwLXAiuBWcAMYD9gOLAR8IgX7+pQmkR0fDE+LVl9+nVrTGmwPn2f\nlvIc0y6GVyZlfiO3ievpm9Meo8nr0x+KuHzwfod62yOAOaF4c4CtIsLneuFGE3Xyqp4nnfaYpT6o\nXGQuj3unfoZUHVUtX6Fq1doyztW6CvJwvT8VtOjoLjmOw+DBrbXbEO5NOKFkYX9icPz112XfdaOP\nJ+07TlCe4zg8+2z7cX//gQccNt+cNvmiypOvYMXX59574+szfXq7PEuXth+PKq9T/rj6tn/jtX/6\nvj5w3W75ybFwfTrLiyo/qr5p08ftd6Yva7+//sbjOHuulWf5cjnuuunkjdN/OL58fzXYF8Mh+y+9\nFH1+/P0XXmjPb82a9n1wmD69fX/p0vbyliyJl99xHCZPnszpp5++Nv3LLwfxJ050GDAg2J83z+l4\nSmyvv+P0L98vb8UKeOih9vhx+uvrC/bD1+/Mmf3Li9oPn59Jk+CDH4w/DpOBoP5h/c6Y0Z7/3Xc7\nzJ0bX57os399PvzhtPIyjgCHjAMO29I+kDsNGOZtD/f2QXz7Y0PxbkXcO8OAqaHw44BfpijXdV3X\nffRR1/U21yL3Sfm77LLguB/mb3/0o/K7zz5B2rFj29N3/nXmE+aBB9rj/PGP8nvddRP7R/bYYIMg\nvw02iI6zerUcX7w4Wg5w3QsvbE8zalR3vUTJD667cKHr7rlnEGeTTVz3/PPjdeG6rtvXF52f67ru\nTju5LkTXP06v/p9f39mzo/P20zz7bPv+3nsH2xttFJ+2TML1OuaYQAd++Pbby++uu7an+f3v4/MC\n191ssyBs9WrXHTEiKOfVV2X7vPNkf8CAIN13v9tdVj/NFlvI/sCB/cu+6KL2sJEjXfc73wnKf+21\n+Hbguq47ceLEtjK/8IUgr9Wr2/M+4QTXPffc7m12+PD4djxzpvzuu297+qlT2/MKH//DH4L0P/6x\n/K5c2Z4vuO5nPuO6e+0lccLH7r8/Xr/yN9EdM8Z1X3mlf5u/4AL5PfVU+V2xwnVPOSX+WnVd173z\nzva6rVoVXfbWW3eGxXfE87p3bgS+4G1/AfhrKPxYYCCwHTJg+wjwMrAEuQH0AceH0iRSd59+WUsr\nm/WY3iqUOqtewvF1nv92Wm17eeUyoT2H0TlPf/78+GOLFhXLO0nPTzwBEyZkzbWF65o2s66dNO6d\na4GDgc2B2cD/A34IXIfMxpkFfNaLO8ULnwKsAk4huOOcAlwJDAImIE8BlgyoagDmGEmzZKmKLHWO\ni+uHq56ymUSRN3KL3lB0UJf2mUXOND3945CB2IHA1sgUzteBjyBTNg8Fwvfc84AdgF2A20Lhk4BR\n3rHT0ouYTJWf+osr64EHHCX562hkixfDypXd4/j1/slP4Oijo2I4iqWqI05kaNFzarphDKN6nn6a\n9J35qLyGsuflZIqt49yqGMgtHZVfzjr+eLjllmLyNJGFC9PFu/rq4BORPrqNUl16YyrJU+de1FNe\nkp6w8qQ1hVoY/SSyKPmaa8op2x/RTxu/SFlm0qq0NDN10UoVK0n2NOMVReqf9Satyqev+pxV7Z5K\nRytXOWlRocOeXHunaspqAEXy7Uyb1Jj8+PYNyWiyfCM3bfqsx6rQke6nuqJUMe4Rh+5ryKfxRj/O\n76eaBx90yi3AeJxcqao6P9XgRIbW6emuaHlZffpVGMBqZ/85qWOmKbeMxSFrYfR13xnTUCejpVpW\n3V/OqpPuVaHCp1+Ff7rM81TFee8s4+234a232sPkhbn2NCbbrFoY/SSqvOjj3CKqfPrdjptg3OIb\nc6tCKUyllSpWkTbQLU5Z7SN8zpOMmep5+rqIewL93Odg6ND2sE3DawzX4DpoxEBuFM8/Xyy9LDug\nRpY6kNanb6mWpF6jPS/5yXN9y7IS9aYWPf08K/HtvLP8muDTN3EgV2WZ7ev29DJOZGgvdR66+fTL\ncu/UeZ6aXYrOAAAdmUlEQVR+VuzsHQOIOgmrVpXzLd3mLuGQTLcL21Sjqmr2zuzZxWVJW1aVujT1\nvIXJO3bS7StZuq+9Rhh9ExrP/vu31m4nvd2qmyLzm1X79JsyeyfLNwWy+PRlVdb4OFmmbObVcRGf\nvmluw7Q6yN8eW5lih+u/Zk3eMhs4e6cIKhp6mnBV6DJ+dTe6JlOGbut4vnTN3lH5Rn+ZfPSj1ZRf\nC6OvYp5tlT593Y9vZWJ9+t1wdAuQiTKuiSzz9E1B9Tz9vPndfbdKOeKphdE3mawvWJji068y7zKo\ng0+/THTXWUX5Kt8BKAvVnoJueVfVeW2E0dd9AUC7T78qqnyiKMunnxYTznEyrba9MtbN6aRqn34S\nVa69Uyb5x5pahcsMU8Y13gij340qGrrKtFXRKaOu+jZlILcbRZ4Gq15wTfX0R9MGcqsmXH87eycD\neebpd9KEtXdU1aGctzmdohnkxpwbhqNbgMqI03mVPv0q3EN55unnlasq128tjL5JpFmdssg8aHMM\nWDum9FJ8TNNT1Uvpmlb/NJT1ElWWfLOWWUc9J9EIo2/Cienm0zfFUHajuA5bCqSoO61UsUzx6Zcx\n5dHEtXfyXH9VzdPXQS2Mvo55tnUw1GYtw2DpJO94hQlTkOtAHh2ccw6MGFFuGWXOLLvkkuJ51MLo\nq6Dsi+Shh5xyC8D0C90pNfd6LMPgKM+x6roVfWO106efdJ6q7jBMmwbz57eHqXQHlf2N3DPOyBY/\nip4x+mWRtcGYYqDyfjJP9UXaC7N3ysDktpWWOszTLwPdT8aNMPpq79TdiTth++3XUltQiZRjMFpF\nM2gArVSxVPZ4s6SLWq9HdRkm+vTzoGqeftSUzahjRWnc7B1TfNdZyXORVXkDy4P16UejcuVKM11X\n7RT1ddeFJtazFkY/CRPm6af16ZveIOJI1rFTgRQBZhpGp23P9GUzyhgwbto8/ew4ZWSqlEYYfZ3o\nNDh1fQKypCdpnr6qdZ3Kooon17Lm/6vOyxRqYfTrsDRqlE+/iQ0miixryXdSdLaIWbRSxdJVl7w9\n+zLX3qmiE1H1PH0zn0IDamH0kyhDsSb2aFX2jMocVMqD7vLLpIl1M6FOVchgQj3T0LiBXBWoOnlx\nN4OwT79z5F/VQK5OkqdsOhVJIpjZm3Jyp6xywbUyadp6+irn6ZuylEnjjX7ZF4epF58OZs3SLYFZ\nlGmwi/j0dRkde630R8e5qIXR131nTEMVPv3O/EwZyPV9+gsWVC2NORQZ1+iGCYOSUec8Lq8s8/TN\nnH3TnneeefpmPoUGGG/0i3wsuAh1uNHkZcWK/mFJjdOEabF1xVS9VPFWr4p2pRPTp93moajRnwU8\nBTwBPOKFDQHuAJ4Hbgc2DcU/C5gOTAMOTVPA3LkFJfQwZZ6+CeywQ/603Xz6Zb7I0ktr7+SdZWOC\nHrr59Ku+oejB0S1AIkWNvos80+4F7OuFjUWM/k7And4+wEjgGO93DHBJmvJXry4oYMnLMKQZBDKx\nN6NSJj+vIro28wIuhyx1zTJPvwyacF7idFTGy2mdaYrqL+35rXr2TqdYnwSu8ravAo7yto8ErgVW\nIk8IMwhuFLGsXp1ccROmbKpae6eOyzAIrQqlMJVW216W81VFx6BpPv24fPSOg7RijzRl9o4L/AN4\nDDjJCxsK+EN6C7x9gBHAnFDaOcBWSQWk8embYAyjMFWuKOrm0zfTvRNNGfKZXuco6uTeqaN+01LU\n6B+IuHY+DnwNOKjjuOv9xZGo2qLunbUFlXwSH37YKbeACEyZvSPk8+k3C0dJLnlvaCZM2ey2nn7V\nsqhA5Tx9U1i3YHr/cwSvADcg7poFwDDgZWA4sNCLMxfYOpT23V5YmBYdz0cPPeSs/RSh36CCR0gn\nlCzc4ILjixZ1P5607zhBeY7j8Pzz7cenTu2f/wc/KPt33+0wcCD09XWXN1yf+++Pl3fmzHZ5liyJ\nzq+b/En17ZY+Tp9+/R5/3GHVqvjyosqPqm/a9HH7nenL2g/rS4zXZCSKHJ83L1o+103Oz9+/7772\n9IsXt+9Lp0j2Z8+OPt/+/qxZTpt8/vkN78+Y0b6/bFl7eW+9JfuuG62fyZMnt9Vn4cIg/b33Ogwe\nHOwvXNi/vHD9k87v5Mntx+Pab9zxF16Q/c7zEY7v1zeNfHJ88tr8OsufPr09/j33OMyZ01/esD6f\neCJ9+f3bE+MIcEIZ5OZdwEbe9obA/ciMnPOBb3vhY4EfetsjgcnAQGA7YCb9xwM6cZ96ynWnTnVd\ncNuQe7D8XXRRcDwcDq57wAHyO3Jk9PGoP9d13UGD+pfpuq47aVJ7WVdcIb/Tpwdxli+XsOXLZX+z\nzfrn38nq1XJs4cL2eOF0//3f7Wk+8IHueokqyw/fd9/2eF/5SrwuXNd1N9pI9g86qH++e+0lYXff\nHV9e3PlZsEB+Z8yI1ouf5vHH2/d32SXYHjAgPm2ZhOt1/PHxdXzPe9rT/PrX/fMaODCIv/76QdxX\nX20vx98/80zZ988LuO7pp3eX9eyzZXurreLPyfnnt4fttJPrnntuEHfx4va2naSfY44J8nrjjfa8\nP/tZ1/3JT7q32W7t+K675Ndvf/7fU0+1pzvwwOi2fd558rtsWf/yDjtMfnfeuf+xpGtu9GjXXbRI\ntlesCMIvvjg4d+C6S5e67mmndb9e77wz3TW95ZadYfFelCLunaHAvZ4hfxi4CZmi+UPgo8iUzQ8T\nGP0pwHXe7y3AKd0E81Hl3lFFkZkAaVCVTxJlfLSjiOxZ04bjV6WzvMTJN2cOzJ6tNk/VaUCdC+bU\nU9XkUwW+rspuW6p0m0XOIkb/RWBP72934H+88NeBjyBTNg8FFoXSnAfsAOwC3JamkKIvZ1V18qJ8\n+qYbozDFZXVqVd9ycDLF3n132G032c67RLJpSyt3m6f/u99VJ0eYascNHFaskG/xQvs56Zy9k/d8\nHXww/Od/5pfQ+Ddy00zZ1EmVF1pnWTpWyuz25aw85b/2mlpZ6oCvp8WL4c0308VVwWuvwapV+dM/\n/TRcdplsp5WrzDaZJu8k/aooo5PHHoP99y9WbjfuuQeuvz5/euON/tKlesr1DcqkSeniR83TnzcP\n/u3fqjNON92UP+3Chd2Px9Xhoovg8cehc82RtIwcmT2NubQiQ8swfHnyvPRS2GKL/OWceGJyDzPr\nPH2VnyWN2j/55PTpopg+Pas0rawJcrF8ef60xht93fP0jzoqOU6cDI8/XuyOnJUNNsifdt68dPE6\nL9LHHgu2dT31mODWKOvD5nF1ixoLSKOHRYuyj8v48XfeOTn/KklT36TOTFLegwblS6+KuHPVaKMP\nar6cldcwJLlUfKJ8+kWMcBpZOhk4MH/eAwq3BCdXqnW9ScNJdTPBsCfjZE6Rt237bStr+sMPz1de\nZ1lx58O09fSLPkkMHZocpx2nba+sdtvt6SYJ442+7ou9amNUJL8sDTzrxZDmFfIqZ5TUmajBvbjj\nu++utuy6joPkxbQ3yVVRRGZr9GPIOjgZ5dMv+wIz4QIOZMjn028WrcjQbnpJupnGuSdM1XWnT7+b\nnHHH0i79nUYHRa+R7HpuxR5pyto7pVO0cVeVvpuPuaqTXKSctGk74+maMmiq0cuKr7+sU5Oj4pdl\nBMtsv1F56/ajg7qp3ia201oY/TJG+FWnq2LtnSRZ9PYg7Dz9Ij79d97JV6Lqc57mqaRbvE6f/j//\nWVymIvT1qRkTTI8Te+TRR/uH5ZXNunc0kvYiqTtl+UZNP79lkMWnnyYPk3n4YTX51Me9E89dd5WX\ndxas0Y8hzqcf14iyrKd/4YXx85111zdrPFU+/awD5qYZvW7fyDVlnr5PWdNLIds8/bJIuqlGxVNH\nK/ZIniVl4mTs+dk7eQaLVJaftZwf/hB+/ONi681EUebsnTTYnn52/POQdcpslT3fvE8jSai6Nst4\n2g7nvXIl7LhjsXxA3/e+O6mF0e88cQ89lC+fvOWnOf7II05snLjesSwrG09Sg+02qKqa5JkHen36\nsgSxbpzMKaL0mmapBF/XVX4uMU1ZfX0Ov/hF+vxNn+HmuvL+S9K1GuB0zSurTGXopxZGv5Nnnqmu\n/FdfVZ+nX6ci66BUxT77dD9uyoJfB3V+vsdgogxp1os7r66LGJG0PdXwW9qq0LWGj8pybU8/Jd1e\nC8+bPg1ZL4599231C7v11u5p3nyz2Gp5nSTJPGFC9jw71x7q5tMH8VvmffU9C2a6hVqRoWW4H/JO\n2Uxi7Nj4Y1dfnSaHlrLl0DfZpPvxNPWdORNeeSW/DPPnJ8dppxV7JK3Rf/ttcSmVRdEvZ5VOlHun\n+JIB3dlwQ7wvBvUny3r6V17ZvZxHHhHf/vnnp5MrrpEvX55ubvNhh8Ufe/DBdDJ04i8hCyLfxRfD\nGWeUMxbSROLaU1oDkffN6qJpup23tEY/y81wwgQ44oj2sClTotPOCX2JO9w+k3jyyXSy+SxalO3G\n1Dktd7vt+q8y++qrskLnTjvB3nvHLzjZc1M2sywp7Pc6sygpzuADPPec/G65ZXu+UT59/4R1Lo7k\ny79gAf3IczLf9a7sabLw/POBzHfcIb8TJ8qqnsHStfLpPv/mEfVWZTcmTowO93WXtldXZKnmrPQ3\nhk7X+DffnCYPIc5w+r1WVbN31D+VOaW4Mb74RXj9dWmLfts680z57Vw+Oev6Qn4b23PP9GnefBM2\n2wxuuKHziBObZsmS9vKi2uoLL0g7vv9+OPdcGD8+Oq9ly0QXvou4SZ0nF1z3e99zXalW9N+AAfL7\npz91j/f733c/Hvf35z9L3tdd1//YDjvI7xFHTHSvv951r746XxlZ/zbcsH3/X/81Ot6pp7rubrvJ\nJ/vKlWliv7AhQ9r3x4xJzmfgQNc95BDXHTxYPg/ph3/nO647apTUJSmPspk1q/3zhmEdPPNMtExj\nxsgn7fzt3/42ONb56Upw3Qcf7B82fHiwfeSR8onN8Kc4P/1p15082XXffNN1b7hBPjO6dKnrvvVW\nez4jRnTX35QpyTpevDj4/OFLL7nuPff4nwmd6I4eLftR6a65pux2mP5v112D7csuy5fHwQd3vw7+\n4z/KrUP4mrr1VtcdP17Oh9jOaEx/fcjtIrvFEolbcpO5/HL48pfLLcNiKUbf2n+dGO/esVhMo+wx\nJYulTGzzVYajWwDNOLoFqIxu7ypYHN0CaMbRLUAi1uhbGkfZ7h3b07fUGdt8ldHSLYBmWroFWEvZ\nL8HE9/Rb5RZcC1q6BdBMS7cAiVijb2kctqdvscRjm68yHN0CaMbRLcBa9PX0nXILrgWObgE04+gW\nIBFr9C2NQ9UyAHHYnr6lztjmq4yWbgE009ItwFqsT18nLd0CaKalW4BErNG3NI6yjb7t6VvqjG2+\nynB0C6AZR7cAa7E+fZ04ugXQjKNbgESs0bc0DuvTt1jisc1XGS3dAmimpVuAtVifvk5augXQTEu3\nAIlYo29pHNanb7HEY5uvMhzdAmjG0S3AWqxPXyeObgE04+gWIJGqjf4YYBowHfh2xWVbegTr07dY\n4qmy+a4D/Bwx/COB44BdKyy/ZFq6BdBMS7cAa7E+fZ20dAugmZZuARKp0ujvC8wAZgErgT8AR1ZY\nvqVHePtt+YzcqlXS61+zRu16PLanb6kzVX4YfStgdmh/DrBfheWXjEMd7vLl4WBK/XfcMTDM/sfk\nOunr6/+XNrzzm6wBDqboQBXrrJPVXebQNB1kw8H0+ldp9NP0tVq0a+xJ6NujFGksjSbJxRN3M7C0\nU/b4iKU0ngTGhfYdNIwy7w/cGto/i2YN5o7TLYBmxukWwADG6RbAAMbpFkAz43QLkESV3snHgB2B\nbYGBwDHAjRWWb7FYLD1Ple6dVcCpwG3ITJ7LgakVlm+xWCwWizJaugXQTEu3AAbQ0i2AAbR0C6CZ\nlm4BLBaLxWKxWCwWi8VisVgsFovFYrE0g3V0C1Aj7Mv3VgcWi6VHOA14DviAbkE00us62AX4AbCX\nt9+LN0CrgwbowPb0kzkYOBpYAwwGHgXe0SpR9fS6Dg5G3iZ/F7AxcCeyrEjsepsNxOrA6qDRhO/e\nw4B/AbYE7gY+Sm+cZKuDgM2BQ4ADgUuAT3rhtevlFcDqoCE6sD39/vwIOJxgnaClwNve72bI9wDu\nA5Zpka4ael0HBwNbAPO8/beBmcBi4N3IMuEPAsuRC76JS7dZHTRUB9boBwwCfgPsDowCngdeQJaq\n8NdsfBQ4CXFtPKFBxrLpdR2sjyyYdTnSq7sLubH5F/PbiB5GIU8/j1GTCz0DVgcN14E1+sEdehWw\nCLgAeB0ZuLwKObl9iK5WAwuRxeIGIKuETgRWVC61WqwOhE2RMYv/Qh7jlwNTEN34OloMbIJ8/e2f\nyIU/h+CmWHesDqwOGsvmwB8RA/dFL8z3zW2ILAx3ircfXpjuXcBbwEtIj7fOWB3IAPWxyEUOcsED\n/DvwN+A9obj+OMYWwD+Qm+TVwHrli1kqVgdWB41nY+B6xHd9IOLG+ExHnI8hHyLYyNsf4G3/DBnE\nqXKF0jLodR0MRD7Z+QhwLXAN4sMN80fgm8gNEOSiXgcZzH4c+GAlkpaH1YHVQc+wAXAzsr4/wKeQ\nQcvdvH3flXEJcA5wAGIAQfzePnU2er2ug21p/57DqUhdR4bCDgLuAIYiT0Vbe+HvD8UZQH3dpNti\ndbAtPaaDWk01KsAo4L+BjyBTD9dD/G/DEB3cgHyw/Wgvvov4ricC3wOuQPzYIP69Pi/dqkqkV4PV\nAXwIqTtIXXcC9vH2b0Pq92+h+PcCTyEX/BPAaC/8ce/XH+Cu00cFrQ6sDhrNusD5yCDMDxF3xg+8\nYz9DPtno++5GAdMQtwfAUcCzyGBmnbE6kBvZg8DtwC3A573wccC5oXiHIzrZ1tvfGZmudwOwfQVy\nlonVgdVBTzAM+DUytxzEPfEbxBDuCdyE+O98d8VfgMO87U1phhuj13WwJ3KjO8TbPxrpteGF/SZ0\nbGfET7u5t/9+gl4dyON7HV9KszqwOugJ/JOyTWh7S+TxbAtv/wzgl8DXgQ8DDwAjOtLX+QT3sg58\n1+XmwN7edh/yUs3vkUG5LYGvAhNC8e9AHvfD+OMbdcXqwOqgkQwiOGFxJ2Y/5G7v9143QAYorwEc\n2v14dWT90Hav6mBkRFj4hrU/MDkUNgC4Evgz4sv9H5pxYXeO1/WaDqI6Kb2mg8ayLvAT4K/AT2Pi\n+CfvOOTuDmIgh3rbG/dLUS/WQVw41yH+ybg40FwdHAo8TNB768S/uI8HLuw4th6wHbBDadJVwz6I\nu86fXdJptHpBB6MJ6h01UaUXdNCVus/e2Q1xVQxGXiI6Cviadyx8V/dH1XcA7kEGam5D1s4AWVMG\n6nlnH4AMxg5E5hJ/CDgbGO4d9/XQVB1siwywnYG8U7Ax8uJYnDtqBPJCzXu9dKOAlcCLwAyk/nW9\nLg5Gzv9Ybz/u7dAm6mBT4LdI277UC+vmkmyiDnqCrYA9Qvv/DziC6JM9EDFyryDzcveJiFNXrgFO\n9LZ3RRr/cbS7e6CZOvgMcpPzmUFQr6h28AiyWNwDwHfLFa0yfOP0BWRGyoPIongg57yTJupgV6TT\nsxOyhIjvj4/rxDRRB41kK8SV82WCl4hA/NOXIL3ZvyCujkH9Usuj//Gh/QHUb4ByBDLw+n+RXh3A\nmci0St+t8RXgIqQX00kTdHA4cpF38i/AL4BPRBzrA4Ygc64vJJjN5B+rGzuGtn35L0DO7QnIzT18\nrI/m6eBjtOvh3d7vj5DZN9C/Xk3TQaP5KjAdmWv+E2Qwcjvv2MYEBnAz5LHNf3u0j+iphnVzY4Do\n4FlEB2cCf0fqfjwynuG/IbgJMg/Zn2Y2gGboYCjy4YqHkPpdQP+nmZsJnnqi6rxVaLuOs5I+ADyN\nvDTnz0bxe/PfI/BHP464KqIG5uuugwOQduAgc+5933z4fM9D3jKPo+46yE1dfFbrIRf8pxB/5c+A\n+QR3+SXIRQDwBjCJ4Cbgrx7p49e5bm/PrYcsZ/wJRAcTkGWPlyCumvWRi+HdyAqAU5C3b0F8u03Q\nwR5IffdHFojbAVkka6NQnL8jK4BC9NvCc2lfMbQ2S+J67Ie4JG4mMGr+V8w2QPTxK+SpZw3wJ+9Y\n2KjVWQdbAJ9D1slpITf445B2v4rgBngW0jkEaR9+G/H1UGcdNB7fQI2gfRW7u4he6Ggv5NG2c9Gk\nOtPX8bszMlNlBvBjpMe3O+LS+S2ig/uRi6IJ+PXeC7nBDfP2P4u4uvYPxf1XL2xIZdJVy4aI6/JQ\nxLj7L9Ktg6wbMxs4zwu7FmkfTWJ9gu/T+k+qv0UWDezkUWRw/27k5SyLwXRzO/Qhs3VuoN2vuwMw\nHnn0/XJ5olVGNx18CnmjcBgya+kBL3xjpHdzMzKbpc5EPYXuj5xj/4beh4zl/J9QnBZyM3xXmcJV\nRLcph5sB30Bu9P4Nbmfab3bbEryEV1eidBAO2wRZIdb35/v6OQhYgNz43o3FWDr9anvS7qfzj++E\nfK3GZxvk0fZI2p8G6uin66aDzh4/yEX+F4Ib4Lq0XxR11EGYcF3WQfz43ySYi/5p2tsCyPS7JhHn\nht0fuBhxb0AwvtE53bAubtxuRNVhHaTdTwiF+e39JMTwh+NaMEcRnYZpf2Q53+2QwZpO3/MByCPu\na8ha2Bsgj3DTED9m+PN+dSGrDnyOQXp0l3n7axD/pH9u6+Sr9L9K5M80+Rbip52L3MxXIZ+tOxAZ\niHsQmZM/ClkW2tfRQup7s+umg/AxkMHKAchT32mI3/phgjbgU6c2AOl0gPf7PqRtPIVcAxshLp3H\nkS9ahf32FkPovPHsjjTas7qk+ZYX506C+ch1JqsOBgAfRd5CvgfxYzeRK5HloKG9p3cAMmB7PfLO\nQd1XAe3GlQQ6CN/I1gkdfw34Oc39ctOVROsAxL33AjKG9RPq/6TfaMIX8YaIa8Zf1e56gg8bbBCR\n9luIPzMuv7pQRAfHAieXJ1olDCDQQR8yO2ccwYs1RyDLQA8MxfHZFBnErPtSt1l1EGYL5OYXnqte\n1+sgqw78+OORL1ttG3HMYiifQXyy/0CM3EcQP/UygjnH3dbSMMVFVYQsOojqvdRRB+GxGn82zmZI\nb+2PyFu1RyMv2kH3cYq6vjJfRAed57wXdQDB2lH+sTrqoLEcQvAyFYhP/kTE7/Y+L+wk5AtNI5BX\no+/0wuNWzKvb45tqHXQLN5ENaF+udkOkp/YY8hGLlhf+JWRw+kRkNtbmxFOn+kM5OqjbTd/qoAcY\nggzC/ANZIgDkYt0XeJngJZNtkLdN/Zdr1iBrvDeBXtfBCOTFuTuQm91A5MMV30VcNVcga6H4F+8R\nwFXATNrdF3XG6sDqQDtV3R3XR16k+j0yh95FRtvnIIbvEGQd68WIr/oN5K5/A/LKfRPodR28ifTg\nNkUewR9CVkidDPwvcnMbhPQA70TmXt+LLCI2AZmpUrdefSdWB1YH2qnK6K8APo68Qn8ZsgTyKOSE\nv4C4ND6ANIITkEe655GZGS7t07TqSq/pYGvgv5Alm2cjywKMRN6kHoPc0F5Evtj1CrIk9ruQl8qu\nBxYhH2Df2cvj2WrFV4LVgdWBcVQ56HED0tt9DPHP/SfixngDecHkAGT2yr8jH4KAYK593ebcx9FL\nOhiNzLD6ATJe8RrSyRiOLJL1dS/eLsj7Ff76Sk8SvFz1YUQfUyuTWi1WB1YHxlGl0R+MrAL5R+S1\n+dORmSkXI3fwG5E7/lPIiH4TH+F6SQfXIo/j/4IsEvZNZE2cDZEXZ7ZDenx/Q1ZEnY3o5yhkGiLA\nc8j0vaeoJ1YHVgc9zSbIxw1+HgrbCfHvrYM86k0g+OJTE+k1HeyNjFG8B7mAbwDOR25opyM3PxD/\nbngdpaglkeuK1YHVQU/zM2R1QOg/nhBe/rTJ9JoObkA+arEh8hm765EnzF2Qtym3o/3j1E2cZ211\nYHXQs/wN+CS9fUJ7TQdDkMHrXbx9/2WzXurFWR1YHfQsmyVHaTy9qIP/Ap6JOdYrNz+rA6uDnsae\n4N7Twa3IG5W9Vu8wVgdWBxaLxWKxWCzNxK6PYnUAVgcWi8VisVgsFovFYrFYLBaLxWKxWCwWi8Vi\nsVgsFoulJ/n/+IrVSXRvt3AAAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7ff0cfcaab10>"
       ]
      }
     ],
     "prompt_number": 13
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from nilmtk.elecmeter import ElecMeterID\n",
      "\n",
      "meter = elec[ElecMeterID(1,1,'REDD')]\n",
      "\n",
      "print(meter.metadata)\n",
      "#print(meter.device)\n",
      "\n",
      "source = meter.get_source_node()\n",
      "clip = Clip(source)\n",
      "total_energy = TotalEnergy(clip)\n",
      "dropout_rate = DropoutRate(total_energy)\n",
      "dropout_rate.run()\n",
      "\n",
      "print(total_energy.results.to_dict())\n",
      "print(dropout_rate.results.combined())"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "{'device_model': 'REDD_whole_house', 'site_meter': True, 'data_location': '/building1/elec/meter1'}\n",
        "{'statistics': {'energy': {'apparent': 99.271402796506891}}}"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "0.351143915972\n"
       ]
      }
     ],
     "prompt_number": 13
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# dropout rate ignoring gaps...\n",
      "\n",
      "sections = meter.good_sections()\n",
      "\n",
      "print(sections)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "[TimeFrame(start='2011-04-18 09:22:09-04:00', end='2011-04-18 13:58:47-04:00', empty=False), TimeFrame(start='2011-04-18 14:03:07-04:00', end='2011-04-19 12:13:38-04:00', empty=False), TimeFrame(start='2011-04-19 12:14:17-04:00', end='2011-04-19 18:45:19-04:00', empty=False), TimeFrame(start='2011-04-19 20:20:08-04:00', end='2011-04-20 01:54:32-04:00', empty=False), TimeFrame(start='2011-04-20 01:55:36-04:00', end='2011-04-20 02:28:14-04:00', empty=False), TimeFrame(start='2011-04-20 02:28:52-04:00', end='2011-04-21 03:17:09-04:00', empty=False), TimeFrame(start='2011-04-21 06:17:17-04:00', end='2011-04-21 17:45:06-04:00', empty=False), TimeFrame(start='2011-04-21 19:41:29-04:00', end='2011-04-22 22:46:57-04:00', empty=False), TimeFrame(start='2011-04-22 22:48:33-04:00', end='2011-04-24 03:48:50-04:00', empty=False), TimeFrame(start='2011-04-24 03:52:24-04:00', end='2011-04-24 20:46:36-04:00', empty=False), TimeFrame(start='2011-04-24 20:47:17-04:00', end='2011-04-27 02:50:19-04:00', empty=False), TimeFrame(start='2011-04-27 02:51:21-04:00', end='2011-04-27 03:17:34-04:00', empty=False), TimeFrame(start='2011-04-27 03:21:15-04:00', end='2011-04-28 05:57:47-04:00', empty=False), TimeFrame(start='2011-04-29 23:10:34-04:00', end='2011-05-01 09:44:42-04:00', empty=False), TimeFrame(start='2011-05-01 09:47:18-04:00', end='2011-05-01 23:14:16-04:00', empty=False), TimeFrame(start='2011-05-01 23:14:17-04:00', end='2011-05-02 17:04:59-04:00', empty=False), TimeFrame(start='2011-05-02 17:07:27-04:00', end='2011-05-03 17:30:17-04:00', empty=False), TimeFrame(start='2011-05-03 17:32:49-04:00', end='2011-05-03 17:33:44-04:00', empty=False), TimeFrame(start='2011-05-06 10:51:46-04:00', end='2011-05-07 01:53:10-04:00', empty=False), TimeFrame(start='2011-05-07 01:53:55-04:00', end='2011-05-07 02:38:15-04:00', empty=False), TimeFrame(start='2011-05-07 02:40:43-04:00', end='2011-05-07 11:59:16-04:00', empty=False), TimeFrame(start='2011-05-11 03:19:43-04:00', end='2011-05-12 17:48:38-04:00', empty=False), TimeFrame(start='2011-05-12 20:14:30-04:00', end='2011-05-13 05:16:24-04:00', empty=False), TimeFrame(start='2011-05-22 16:04:46-04:00', end='2011-05-22 23:39:01-04:00', empty=False), TimeFrame(start='2011-05-22 23:41:35-04:00', end='2011-05-23 09:22:08-04:00', empty=False), TimeFrame(start='2011-05-23 10:31:34-04:00', end='2011-05-24 14:32:05-04:00', empty=False), TimeFrame(start='2011-05-24 15:55:33-04:00', end='2011-05-24 15:57:02-04:00', empty=False)]\n"
       ]
      }
     ],
     "prompt_number": 14
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "full_sections_results = meter.good_sections(full_results=True)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 15
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "full_sections_results.plot()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAXMAAAEECAYAAADandTrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEMpJREFUeJzt3X2wXHV9x/H3NheoDtBIU+iYBGM1glCh0hpircNSsIa0\n41X7EKPoILZN/wh/tDNtKjrmzlDt47TUMmIGA2OdShyVaUNLyTjFWy1CQloSnnJjgtw2Ca2Dlloq\n1CZy+8fvbO7JZnfPuXfPnt37zfs1s+E87dnv7+zZz/72nHMPIEmSJEmSJEmSJEmSJEmSVKvbgW8C\nj/ZY5uPAAWAv8Po6ipIkzc2bSQHdLczXAvdkw5cDD9ZRVE2awy5gBDSHXcCQNYddwAhoDruAIWsO\nu4AyfqDEMl8Fnu0x/23Ap7PhncBi4Lw+6xoVzWEXMAKawy5gyJrDLmAENIddwJA1h11AGWXCvMhS\n4FBu/DCwrIL1SpJKqiLMARpt4zMVrVeSVEJ7CHezArgbeF2HeZ8EJoFt2fgUcAXppGlek9zPlUbj\n0s0zM3tLFypJAtKFJn+dG58EJqsI87XAxuy/q4Gbs/8WmbEDX5+ZPjZ1o+xeUpN+2lJG2fYOuo4y\nqn5vRqFNEVX7PjWO/5M3VuKZd5J62ktIx8Y3A6dl87aQrmRZCxwEvgu8v/9iJUlzMcw+lz3zGtkz\nL8+euapWR8+8qhOgkqQhMswlKQDDXJICMMwlKQDDXJICMMwlKQDDXJICMMwlKQDDXJICMMwlKQDD\nXJICMMwlKQDDXJICMMwlKQDDXJICMMwlKQDDXJICMMwlKQDDXJICMMwlKQDDXJICMMwlKQDDXJIC\nMMwlKQDDXJICMMwlKQDDXJICMMwlKQDDXJICMMwlKQDDXJICMMwlKQDDXJICMMwlKQDDXJICMMwl\nKYAyYb4GmAIOAJs6zF8C3AvsAR4DrquqOElSOY2C+YuA/cDVwBHgIWA9sC+3zARwBvBBUrDvB84D\njhWsewZm5l6x5mWmj03dKNpLatZPW8oo295B11FG1e/NKLQpomrfp8bxf/KKeuargIPANHAU2AaM\nty3z78DZ2fDZwLcpDnJJUoXGCuYvBQ7lxg8Dl7ctcxtwH/A0cBbwK5VVJ0kqpSjMy/zoupF0vLwJ\nvAr4EnAp8Fzbcs3sIUnqz0RueBKYLArzI8Dy3PhyUu8876eBj2bDTwJPARcAu9uWm8weLZsLXluS\n1NlE+4SiY+a7gZXACuB0YB2wvW2ZKdIJUkgnPi8AvtFHkZKkOSrqmR8DNgI7SFe2bCVdybIhm78F\n+BhwB7CX9OXwO8B/DqJYSVJnw7zozEsTa+SlieV5aaKqNgqXJkqSFgDDXJICMMwlKQDDXJICMMwl\nKQDDXJICMMwlKQDDXJICMMwlKQDDXJICMMwlKQDDXJICMMwlKQDDXJICMMwlKQDDXJICMMwlKQDD\nXJICMMwlKQDDXJICMMwlKQDDXJICMMwlKQDDXJICMMwlKQDDXJICMMwlKQDDXJICMMwlKQDDXJIC\nMMwlKQDDXJICMMwlKQDDXJICMMwlKYAyYb4GmAIOAJu6LNMEHgYeAyarKEySVF6jYP4iYD9wNXAE\neAhYD+zLLbMYuB94K3AYWAJ8q8Rrz8DMXOvVPM30sakbRXtJzfppSxll2zvoOsqo+r0ZhTZFVO37\n1Dj+T15Rz3wVcBCYBo4C24DxtmXeDXyRFORQLsglSRUqCvOlwKHc+OFsWt5K4Bzgy8Bu4L2VVSdJ\nKmWsYH6ZH12nAZcBVwEvBR4AHiQdY5ck1aAozI8Ay3Pjy5k9nNJyiHRo5YXs8RXgUk4O82b2kCT1\nZyI3PAlMFh2WHyOdAL0KeBrYxcknQC8EbiGdAD0D2AmsA54oWLcnQGvkCdDyPAGqqtVxArSoZ34M\n2AjsIF3ZspUU5Buy+VtIly3eCzwCvAjcRnGQS5IqNMw+lz3zGtkzL8+euao2CpcmSpIWAMNckgIw\nzCUpAMNckgIwzCUpAMNckgIwzCUpAMNckgIwzCUpAMNckgIwzCUpAMNckgIwzCUpAMNckgIwzCUp\nAMNckgIwzCUpAMNckgIwzCUpAMNckgIwzCUpAMNckgIwzCUpAMNckgIwzCUpAMNckgIwzCUpAMNc\nkgIwzCUpAMNckgIwzCUpAMNckgIwzCUpAMNckgIwzCUpAMNckgIoE+ZrgCngALCpx3JvAI4B76yg\nLknSHBSF+SLgFlKgXwSsB17bZbk/BO4FGlUWKEkqVhTmq4CDwDRwFNgGjHdY7gbgC8AzVRYnSSqn\nKMyXAody44ezae3LjAO3ZuMz1ZQmSSqrKMzLBPPNwO9myzbwMIsk1W6sYP4RYHlufDmpd573k6TD\nLwBLgGtIh2S2ty3XzB6SpP5M5IYngcmiXvQYsB+4Cnga2EU6Cbqvy/J3AHcDd5UoZsYjMvWZ6WNT\nN0bst1Y/bSmjbHsHXUcZVb83o9CmiKp9nxrH/8kr6pkfAzYCO0hXrGwlBfmGbP6W6gqUJM3XMPtc\n9sxrZM+8PHvmqlodPXP/AlSSAjDMJSkAw1ySAjDMJSkAw1ySAjDMJSkAw1ySAjDMJSkAw1ySAjDM\nJSkAw1ySAjDMJSkAw1ySAjDMJSkAw1ySAjDMJSkAw1ySAjDMJSkAw1ySAjDMJSkAw1ySAjDMJSkA\nw1ySAjDMJSkAw1ySAjDMJSkAw1ySAjDMJSkAw1ySAjDMJSkAw1ySAjDMJSkAw1ySAjDMJSkAw1yS\nAjDMJSmAsmG+BpgCDgCbOsx/D7AXeAS4H7ikkuokSaU0SiyzCNgPXA0cAR4C1gP7csu8EXgC+A4p\n+CeA1QXrnYGZOZar+ZrpY1M3yuwlNeqnLWWUbe+g6yij6vdmFNoUUbXvU+P4P3lleuargIPANHAU\n2AaMty3zACnIAXYCy+ZZpSRpHsqE+VLgUG78cDatmw8A9/RTlCRpbsZKLDOXH15XAtcDb+owr5k9\nJEn9mcgNTwKTZcL8CLA8N76c1DtvdwlwG+mY+bMd5k9mj5bNJV5bknSyifYJZQ6z7AZWAiuA04F1\nwPa2Zc4H7gKuJR1flyTVqEzP/BiwEdhBurJlK+lKlg3Z/C3AR4CXAbdm046STpxKkmowzIvOvDSx\nRl6aWJ6XJqpqo3JpoiRpxBnmkhSAYS5JARjmkhSAYS5JARjmkhSAYS5JARjmkhSAYS5JARjmkhSA\nYS5JARjmkhSAYS5JARjmkhSAYS5JARjmkhSAYS5JARjmkhSAYS5JARjmkhSAYS5JARjmkhSAYS5J\nARjmkhSAYS5JARjmkhSAYS5JARjmkhSAYS5JARjmkhSAYS5JARjmkhSAYS5JARjmkhSAYS5JAZQJ\n8zXAFHAA2NRlmY9n8/cCr6+mNElSWUVhvgi4hRToFwHrgde2LbMWeDWwEvh14NaKa5QkFSgK81XA\nQWAaOApsA8bblnkb8OlseCewGDivuhIlSUWKwnwpcCg3fjibVrTMsv5LkySVVRTmMyXX05jn8yRJ\nFRgrmH8EWJ4bX07qefdaZlk2rV0ze7TshcalpapU3xrtX7cL2Ki0ZVTqqFLENgW0F5jIjU9mj57G\ngCeBFcDpwB46nwC9JxteDTzYT5UjZmLYBYyAiWEXMGQTwy5gBEwMu4Ahmxh2AWUU9cyPARuBHaQr\nW7YC+4AN2fwtpCBfSzpR+l3g/QOpVJLUVVGYA/x99sjb0ja+sZpyJEnzsWjYBSwA08MuYARMD7uA\nIZsedgEjYHrYBQzZ9LALkCRJkiRJkjp4O/AicEEF6/pj0pU5e4G7gB/Kpq8CHs4ejwDrujz/r0g3\nIHuUdJVP/mRytxuP3Q58M3tO3i8DjwPfBy7rUXOV7b8pq28P8A+c+LcCHyTVPwX8XJfn19n+F4HP\n5MbHgGeAu7vUNled2nsWs/vBw9nr/VmH576H1M5HgPuBS3Lzut2krlt7zwG+DDwH/EXb6wxyG/R6\n3ZbtnPy+tdSxDQbZ/rcAu7P6dwNX5uZ9FPi3rJ5u6toHQvkcaaeamMdz2//a9S25aX+QPQBekpv+\no8C36Hyi+Jrc8GeB38iG89fdX86J192/mRRu7R+KC4HXkN7EXmFeZfvPyg3fAHwqG76IFPCnkf6+\n4GCH50K97X8O+BfgB3Ov/TBpW/SrbHt3Az/TYfobme0IrGG2vYuyda3I1p3/G41u7X0p8CbSpb/t\nH+RBboNerwvwTtKX9yNdnl/HNhhk+3+C9FkHuJgT/zByVTavV5jXtQ/0tJDuZ34mKRw2cmJvuQl8\nBfhb0jfgrczeXuB/gD8hbcTVbev7EunbHtINwlr3k3khN/0lwHdI357t8pdrPsTsPWvGOfnGY60d\n5avAsx3WNQV8vcP0vKrbn985zyR9abXqv5N0Y7Vp0s64qkM9dbf/HuDns+H1WY2tdq4Cvkb6sN9P\n+pAA/COQ/yvjfwJe17beMu19DXBu9vx2D5D2EThxP+p1k7pu7X0+q/97HebB4LZBr9c9E/hN4Pc4\n+bYdLXVtg0G1fw/wH9nwE6TP/WnZ+K7cvG7q3Ae6WkhhPg7cS/rJ8wwnfpu9gRRyFwGvIvUkIH3L\nPUj65v1aj3Vfz2xvEtKb8Hj2+K2Cuk4Drs1qA3g5xTcnm49BtL/1E/I64Pdz9ed7JkX119X+zwHv\nAs4gfRh35ubtI/X6LwM2Ax/Lpm8ltQ3Sh/sMTv5VUKa97yJ9EIt8gNn9qMxN6rrpdm+jQW2DXq97\nE6lD8Hy50ge6DQbdfoBfBP6ZFL7zMeh9oKuFFObrgc9nw5/Pxlt2kb79XiR9W7d+Dn8f+GLBej8E\n/B/pUEF+fReTdow/Z/YnVCefIH3735+bNogbjw2i/R8CzgfuAG7usVyv+utq/6Okn6vrgb9rm7cY\n+EK2zJ+S3juyab9AOr56PamdZbTXu460XXu5MnuN1nHRQdxsrs5tAKkT8GPA39C9V5436G0w6PZf\nTDrcuqHHMr3UsQ90VeYvQEfBOaQN9eOkDbQo++9vZ/PzG63B7GGS/6X3Br2OdIz3qi7zp0j3pnk1\n6du63Wbgh4Ffy00re+OxuRhU+1s+y2xvYi7119X+lu2kXuIVwI/kpt9EOon7DuAVzN506HnS4bS3\nk044dToeX1TvpaTPycM96roEuI10vLR1GKnMTermYxDboJvVwE8BT5G2wbnAfcDPdli2rm0wqPYv\nI10I8V5Se+eqzn2go4XSM/8l4C9J38qvJPUmnyL9rIJ0WGQFqT3r6Hxss90aUhiOk0KvZQWzX3Kv\nIP0flA50eP6vkq58eHfb9O3A+7Lh1cB/ka7gKKtTD2gQ7V+ZGx5nNqy2k37Knp691kpSz79dne1v\nuZ108vfxtulnA09nw+33BvoU6eqaXcwe18wrau96TvzV1u58UghcSzo+2rI7W9eKbN3r6HyyrlN7\n694G3V73k6TDAq8k/dr7Op2DvM5tMIj2Lyb19DeRjn/PVd37wIJ2HydfIncD6Sf+FaSf+a0TgJ/I\nLfPfPdZ5APhXZi89az3vWuCxbNouUuh3cjRbR+v5H87Nu4X0pu7lxJ7AnaQd7nukY2mtne4d2fgL\npJMt7ffCGUT7Wz9J95AOxZybm3djVv8U8NYuz6+z/Z3acQWzH4zVwH7Sya+bgG+0LbuP7pdYQu/2\nPsnsybRObgO+zex2yH8RXJPVdZB0+WNLr/ZOZ+t7jnQ+48Js+qC3QbfXbVlB96tZ6tgGg2z/h0kX\nC+QvRV2SzfujrM5j2X8/0uH5de0D4TWp7nrjhajJqd3+Ii8nfZhOZaf6Njgl2r9QDrP0MsOp/X82\nOtXb38v7SFfz3DjsQoboVN8Gp3r7JUmSJEmSJEmSJEmSJEmS5uP/AaYSBcXvLECyAAAAAElFTkSu\nQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7f796b0130d0>"
       ]
      }
     ],
     "prompt_number": 16
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "source = meter.get_source_node(sections=sections)\n",
      "dropout_rate = DropoutRate(source)\n",
      "dropout_rate.run()\n",
      "\n",
      "print(dropout_rate.results.combined())"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "0.0085459790444\n"
       ]
      }
     ],
     "prompt_number": 17
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "dropout_rate.results"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 18,
       "text": [
        "                           dropout_rate                        end  n_samples\n",
        "2011-04-18 09:22:09-04:00      0.000120  2011-04-18 13:58:46-04:00      16596\n",
        "2011-04-18 14:03:07-04:00      0.000113  2011-04-19 12:13:37-04:00      79822\n",
        "2011-04-19 12:14:17-04:00      0.000000  2011-04-19 18:45:18-04:00      23462\n",
        "2011-04-19 20:20:08-04:00      0.000000  2011-04-20 01:54:31-04:00      20064\n",
        "2011-04-20 01:55:36-04:00      0.000000  2011-04-20 02:28:13-04:00       1958\n",
        "2011-04-20 02:28:52-04:00      0.000336  2011-04-21 03:17:08-04:00      89267\n",
        "2011-04-21 06:17:17-04:00      0.000000  2011-04-21 17:45:05-04:00      41269\n",
        "2011-04-21 19:41:29-04:00      0.000010  2011-04-22 22:46:56-04:00      97527\n",
        "2011-04-22 22:48:33-04:00      0.000201  2011-04-24 03:48:49-04:00     104396\n",
        "2011-04-24 03:52:24-04:00      0.000115  2011-04-24 20:46:35-04:00      60845\n",
        "2011-04-24 20:47:17-04:00      0.000072  2011-04-27 02:50:18-04:00     194568\n",
        "2011-04-27 02:51:21-04:00      0.000000  2011-04-27 03:17:33-04:00       1573\n",
        "2011-04-27 03:21:15-04:00      0.000010  2011-04-28 05:57:46-04:00      95791\n",
        "2011-04-29 23:10:34-04:00      0.000153  2011-05-01 09:44:41-04:00     124429\n",
        "2011-05-01 09:47:18-04:00      0.000000  2011-05-01 23:14:15-04:00      48418\n",
        "2011-05-01 23:14:17-04:00      0.000000  2011-05-02 17:04:58-04:00      64242\n",
        "2011-05-02 17:07:27-04:00      0.101595  2011-05-03 17:30:16-04:00      78853\n",
        "2011-05-03 17:32:49-04:00      0.000000  2011-05-03 17:33:43-04:00         55\n",
        "2011-05-06 10:51:46-04:00      0.100899  2011-05-07 01:53:09-04:00      48627\n",
        "2011-05-07 01:53:55-04:00      0.114286  2011-05-07 02:38:14-04:00       2356\n",
        "2011-05-07 02:40:43-04:00      0.000000  2011-05-07 11:59:15-04:00      33513\n",
        "2011-05-11 03:19:43-04:00      0.000346  2011-05-12 17:48:37-04:00     138487\n",
        "2011-05-12 20:14:30-04:00      0.000000  2011-05-13 05:16:23-04:00      32514\n",
        "2011-05-22 16:04:46-04:00      0.000257  2011-05-22 23:39:00-04:00      27248\n",
        "2011-05-22 23:41:35-04:00      0.000000  2011-05-23 09:22:07-04:00      34833\n",
        "2011-05-23 10:31:34-04:00      0.000000  2011-05-24 14:32:04-04:00     100831\n",
        "2011-05-24 15:55:33-04:00      0.000000  2011-05-24 15:57:02-04:00         90"
       ]
      }
     ],
     "prompt_number": 18
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "dropout_rate.results.plot()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7f797d92bb50>"
       ]
      }
     ],
     "prompt_number": 19
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec.select_using_appliances(category='single-phase induction motor')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 20,
       "text": [
        "MeterGroup(meters=\n",
        "  ElecMeter(instance=5, building=1, dataset='REDD', appliances=[Appliance(type='fridge', instance=1)])\n",
        "  ElecMeter(instance=6, building=1, dataset='REDD', appliances=[Appliance(type='dish washer', instance=1)])\n",
        "  MeterGroup(meters=\n",
        "    ElecMeter(instance=10, building=1, dataset='REDD', appliances=[Appliance(type='washer dryer', instance=1)])\n",
        "    ElecMeter(instance=20, building=1, dataset='REDD', appliances=[Appliance(type='washer dryer', instance=1)])\n",
        "  )\n",
        ")"
       ]
      }
     ],
     "prompt_number": 20
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec.select_using_appliances(category='resistive')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 21,
       "text": [
        "MeterGroup(meters=\n",
        "  ElecMeter(instance=6, building=1, dataset='REDD', appliances=[Appliance(type='dish washer', instance=1)])\n",
        "  ElecMeter(instance=13, building=1, dataset='REDD', appliances=[Appliance(type='electric space heater', instance=1)])\n",
        "  ElecMeter(instance=14, building=1, dataset='REDD', appliances=[Appliance(type='electric stove', instance=1)])\n",
        "  MeterGroup(meters=\n",
        "    ElecMeter(instance=3, building=1, dataset='REDD', appliances=[Appliance(type='electric oven', instance=1)])\n",
        "    ElecMeter(instance=4, building=1, dataset='REDD', appliances=[Appliance(type='electric oven', instance=1)])\n",
        "  )\n",
        "  MeterGroup(meters=\n",
        "    ElecMeter(instance=10, building=1, dataset='REDD', appliances=[Appliance(type='washer dryer', instance=1)])\n",
        "    ElecMeter(instance=20, building=1, dataset='REDD', appliances=[Appliance(type='washer dryer', instance=1)])\n",
        "  )\n",
        ")"
       ]
      }
     ],
     "prompt_number": 21
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from nilmtk.disaggregate import CombinatorialOptimisation\n",
      "co = CombinatorialOptimisation()\n",
      "# co.train(elec)\n",
      "# co.model"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 22
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "fridge = elec['fridge']"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 23
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "fridge.available_power_ac_types()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 24,
       "text": [
        "['active']"
       ]
      }
     ],
     "prompt_number": 24
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "fridge.dominant_appliance().identifier"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 25,
       "text": [
        "ApplianceID(type='fridge', instance=1)"
       ]
      }
     ],
     "prompt_number": 25
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec.mains()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 26,
       "text": [
        "MeterGroup(meters=\n",
        "  ElecMeter(instance=1, building=1, dataset='REDD', site_meter, appliances=[])\n",
        "  ElecMeter(instance=2, building=1, dataset='REDD', site_meter, appliances=[])\n",
        ")"
       ]
      }
     ],
     "prompt_number": 26
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "graph = elec.wiring_graph()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 27
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 28,
       "text": [
        "MeterGroup(meters=\n",
        "  ElecMeter(instance=1, building=1, dataset='REDD', site_meter, appliances=[])\n",
        "  ElecMeter(instance=2, building=1, dataset='REDD', site_meter, appliances=[])\n",
        "  ElecMeter(instance=5, building=1, dataset='REDD', appliances=[Appliance(type='fridge', instance=1)])\n",
        "  ElecMeter(instance=6, building=1, dataset='REDD', appliances=[Appliance(type='dish washer', instance=1)])\n",
        "  ElecMeter(instance=7, building=1, dataset='REDD', appliances=[Appliance(type='sockets', instance=1)])\n",
        "  ElecMeter(instance=8, building=1, dataset='REDD', appliances=[Appliance(type='sockets', instance=2)])\n",
        "  ElecMeter(instance=9, building=1, dataset='REDD', appliances=[Appliance(type='light', instance=1)])\n",
        "  ElecMeter(instance=11, building=1, dataset='REDD', appliances=[Appliance(type='microwave', instance=1)])\n",
        "  ElecMeter(instance=12, building=1, dataset='REDD', appliances=[Appliance(type='unknown', instance=1)])\n",
        "  ElecMeter(instance=13, building=1, dataset='REDD', appliances=[Appliance(type='electric space heater', instance=1)])\n",
        "  ElecMeter(instance=14, building=1, dataset='REDD', appliances=[Appliance(type='electric stove', instance=1)])\n",
        "  ElecMeter(instance=15, building=1, dataset='REDD', appliances=[Appliance(type='sockets', instance=3)])\n",
        "  ElecMeter(instance=16, building=1, dataset='REDD', appliances=[Appliance(type='sockets', instance=4)])\n",
        "  ElecMeter(instance=17, building=1, dataset='REDD', appliances=[Appliance(type='light', instance=2)])\n",
        "  ElecMeter(instance=18, building=1, dataset='REDD', appliances=[Appliance(type='light', instance=3)])\n",
        "  ElecMeter(instance=19, building=1, dataset='REDD', appliances=[Appliance(type='unknown', instance=2)])\n",
        "  MeterGroup(meters=\n",
        "    ElecMeter(instance=3, building=1, dataset='REDD', appliances=[Appliance(type='electric oven', instance=1)])\n",
        "    ElecMeter(instance=4, building=1, dataset='REDD', appliances=[Appliance(type='electric oven', instance=1)])\n",
        "  )\n",
        "  MeterGroup(meters=\n",
        "    ElecMeter(instance=10, building=1, dataset='REDD', appliances=[Appliance(type='washer dryer', instance=1)])\n",
        "    ElecMeter(instance=20, building=1, dataset='REDD', appliances=[Appliance(type='washer dryer', instance=1)])\n",
        "  )\n",
        ")"
       ]
      }
     ],
     "prompt_number": 28
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec.draw_wiring_graph()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nQk1NTRoaGnLp0qVMS0sr8PqvXr1KCwsLHj16NMt0X19f1qlTh6mpqdy2bRu7deuWZf5XX32luH9M\nyhuOmZubc/ny5Rw9enSu21q8eDFbt25d4IOF7B4/fswRI0bQ3NycP/30ExMTE5mens6DBw+ybdu2\nrFixIpcsWcLo6OiP2o4gFBcRxsIn633DqrVr1+basGrp0qUqaVhVWM+fP+cPP/xAa2trtm/fngcO\nHKBUKmVkZCSHDh1KLS0t6uvrc9GiRYU+E7x58yatra3p5+eXZXpCQgIrVarEU6dOUSaTsWHDhgwI\nCMhSpnXr1jx58qTivUwmY7ly5Xjq1ClWr1491+1JpVK2atWKS5cuLVR9s7t9+zbd3d1pa2vLjRs3\nKj6HK1eucNCgQTQxMeE333zDBw8eFMn2BKGoiDAWPgnKNKy6ePGiyhpWFZZMJuPff/9NT09PGhsb\nc/To0QwNDSUp3+cRI0YoQnj+/Pkf1c0nPDycFSpU4I4dO3LMmzFjBj08PEjKL43b29vnuGRfsWLF\nHCHXpEkTnjt3jqampnz69Gmu242IiKC5uTlv3LhR6Lpn988//7B9+/asVq0ad+/erajrkydPOG3a\nNJqZmdHd3Z0XL14ssm0KwscQYSyUKdkbVvXu3VvRsKply5alrmFVYSUnJ3PHjh1s1KgRq1SpwuXL\nlzMqKoqkPIRHjRpFbW1t6unpcfbs2Xz37t1Hbe/JkyesUqUK161bl2NeWFgYzczMFGHq5eWV40w2\nJSWF2traOS6Le3l5cevWrXRzc+Pvv/+e5/a3bdtGR0dHJicnf9R+ZHf8+HE2atSIzs7OPHbsmOLW\nQ3x8PFetWkV7e3s2bdqUe/fuLdQlfUEoKiKMhVIrPT2dYWFhWRpWWVhYlImGVYX17Nkzzpo1i1ZW\nVuzQoQMPHjyouJ8aGRnJMWPGUFtbm7q6upwxY4aiW9HHePXqFWvUqMElS5bkmCeTydi1a1fFvNev\nX9PY2Jhv377NUi48PJyVK1fOsfzChQs5depUrlmzhkOHDs2zDjKZjL179+bUqVM/bmfyWLevry9r\n1KhBFxcXXrp0STFPKpVy3759bNmyJe3s7Pjzzz8zNja2yOsgCB8iwlgoFd43rPr1119zbVg1d+7c\nUt+wqrBkMhkvXrxIDw8PGhsbc8yYMbx586ZiflRUFL29vamjo0NdXV1+++23RXa5PSoqivXr18/S\nCjozf39/1qxZU3H5+6effuKQIUNylAsKCmKbNm1yTPf19WXPnj1569atXMM6s9evX7N8+fJZWnAX\npbS0NG7ZsoUVKlRgnz59snzGpHyQlAEDBtDU1JT/+9//+OjRo2KphyDkRoSxUOIyN6waMWJErg2r\ngoKCykzDqsJKTk7m9u3b2bBhQ9rb23PFihVZWvtGRUVx3Lhx1NHRoY6ODidPnlykZ21xcXFs2rQp\nJ06cmOsBTlJSEu3s7Hj8+HGS8rPIypUr899//81RdsuWLbmGdGhoKGvUqEGZTEZra+sPNpw6dOgQ\n7ezsivXsNCkpiUuXLqWFhQWHDh2aI3QfPnzIyZMn09TUlB4eHln6WQtCcRFhLHyUD92rzNywauDA\ngaxVqxb19PTo7OxcphtWFURcXFyWsHv69Cm///57WllZsVOnTjx06FCWrj1RUVGcMGGCIoQnTJhQ\n5F1ykpKS6OLiwhEjRuR5peGHH36gu7u74v3BgwfZpEmTXMvOnDmTc+bMyTE9OTmZOjo6TE1Npaen\nJ7ds2fLBun399df5XtIuKtHR0Zw5cyZNTU05adKkHMNzxsbGcsWKFaxcuTJbtmzJ/fv3f3QXLEHI\niwhjQWkvXrzgkSNHuGDBArq5udHe3p62trYk5Zdanz59ykOHDikaVlWuXDnXhlWlfWB/mUzGhIQE\nJiQkfNQl8Tt37nDcuHE0MDDg6dOneeHCBQ4YMIDGxsb09vbmrVu3spSPiorixIkTqaurS21tbY4Z\nM6ZYrg6kpKTQ1dWVnp6eeYbL/fv3aWpqysePHyumde7cmdu3b8+1/KBBg/IcTatq1aq8c+cON2/e\nzIEDB36wfvHx8axatSr379+vxN58vBcvXnDs2LE0MzPj3LlzGRcXl2V+Wloa9+zZwyZNmrBq1apc\nvXr1J33wKKiGCONSIDo6mit//pndW7Viizp12NrRkX07dqSPj0+Rty5VhkwmY3h4OH19fTlz5kx2\n7dqV1tbWBJDrq02bNlkaVk2bNq3MNaySyWQ8efIk3bt2pY6mJnU1NamnqUkdTU327dSJQUFBSgVz\neno6AwIC2Llz5yyfkbGxMatWrcqff/6ZMTExWZaJioripEmTFCH89ddf5xg+sqhIpVL279+fPXv2\nzLe1eY8ePbho0SLF+7CwMFpYWOR5JaRFixZ53uvt1q0b/f39GR4eTmtra6U+xwsXLtDKyoovX778\nYNmiEh4ezkGDBtHKyoq//PJLjt89mUzGCxcu0M3Njebm5pw+fXqe3bUEoaBEGKvQgwcPOGLQIBrr\n6tJTIqEfwLMATwHcAbCDoSEtDQ353ZQpOf6AF5W0tDSGhIRwx44dnDRpEtu2bUsjI6M8gze315w5\nc8p0w6oTJ06wZoUKrGNgwLUAowEy4xUDcD3AegYGrGFry7/++ivXdcTExHDlypWsVq1arp+Rurp6\njmEfo6Ki+L///U8RwkOHDi3W8ElPT+fQoUPZvn37fG8vHD58mA4ODlnCaNKkSZw2bVqey9jY2OTZ\n4Gny5MlcvHgxZTIZK1euzNu3bytV3xkzZrB79+4l/nN1/fp1urq60s7Ojjt27Mj16kF4eDgnTJhA\nExMTenl58dq1ayVaR+HTI8JYRS5dukRrIyPOUlfny0x//LO/7gAcrKPDulWqZLlkWBhJSUm8fPky\nN2zYwFGjRrFJkybU1dUtUPBmf2loaHDDhg1F9KmUvD98fGipp8cAgLJ8vgcZwKMArfT0+HumS7W3\nb9/m2LFjqa+vn+/nZG1tzaCgIJLyEJ4yZQr19PSora1NLy8vPnv2rFj3UyaTcfz48WzevHm+l1jf\nvXtHe3t7BgYGKqYlJibSzMwszzGkk5OTqa2tnecl740bNyruAQ8ZMoRr165Vqs4pKSl0cnLipk2b\nlCpf1M6ePcsWLVqwbt26PHDgQK4HBdHR0VyyZAkrVKhAFxcXHjp0qMxcDRJKFxHGKhASEkILAwMe\nyuePf/Yg+FFDgzUqVFD6HmJMTAxPnz7NFStW0MvLi3Xr1qWGhsZHBa+uri4bN27MUaNGccOGDbx8\n+XKR9HNVlWPHjtFST4+hSn4PBHgrI5DnzJnDTp06ffAza9q0Kf/44w+mpKQwOjqaU6dOVYSwh4dH\niXWfmTFjBp2cnD7YEGzevHns3bt3lmmbN29mjx498lwmLCyM9vb2ec4/c+YMmzdvTpLcsWMH3dzc\nlK73zZs3aW5uzvv37yu9TFGSyWQ8dOgQ69aty+bNm/Ps2bO5lktNTeXOnTvp7OzMGjVqcMOGDUxM\nTCRJPnr0SOnbHMLnS4RxCZNKpXSwtaVPLn/onwDsDtAUoDXAcQClmeZP0tZmv2yD85P/37Bq4cKF\nioZVHxO6AGhkZMQ2bdpw4sSJ3LFjB0NCQj6pEYqkUikrmZszKI/AdQFoBLAawP3Z5p8GqJfPZ6el\npUUvLy9Fl5jo6GhOmzaNEomEOjo67Nev30c9qaigfvzxR9aqVeuD96EjIiJoamqapW4ymYwNGjTI\ncqac3bFjx9iuXbs85798+ZKmpqYk5SN9mZmZFejs8eeff2azZs1U+vMnlUr5+++/087Ojt26deP1\n69dzLSeTyXjmzBn27NmTFhYW/P777zlixAgCYP369bl9+/ZS34BRUA0RxiXs8OHDbGxomOtZVx+A\nQwCmAHwJsB7AVZnmxwE01tbmxo0bOXPmTHbr1i3fhlXKvqytrdm1a1fOmDGDf/75J8PDwz/5o/gD\nBw7wi1y+hzSADgB/zrgicRKgPsCwbOUcc/kcy5cvz3nz5inu+0ZHR/O7776jRCKhrq4u+/Tpw3v3\n7pXofq5evZr29vZKNTR6/9SqzC5cuMBq1arlG54bN27k8OHD85wvk8lobGys6Drk4OCQZ5jlJj09\nne3atePChQuVXqa4JCcnc/Xq1bS2tubAgQPzPWO/e/cuhw8fnuvPycKFCz/5fvRCwYgwLmHdWrXi\nr3lcAq0OMDDT+28BjspWZjhAjY8IXnt7e7q5uXHBggUMCAjg8+fPVf2RqETnFi24PZfvIASgQbZp\nnQDOyjZtZ0Y5AGzWrBl37dqlOOOJjo7mjBkzFCHcvXt3pRstFaVff/2VFSpUUOoJRYGBgaxatWqO\nhl2DBg3i8uXL8132u+++4/z58/Mt88UXX/DcuXMkyVGjRnHFihUfrFNmjx8/poWFRalpKBUfH895\n8+bRzMyM3t7eef4eLV26NM/fRYlEQm9vb4aFhSm1zfT0dB47dozuXbqwQZUqrGZlRSd7e3r27Kl4\nmpZQdokwLkEvXrygiY4Ok/II4/EAvQAmAXwKsC5A/1zCQqJE6Kqrq7NOnTr08vLiihUreOrUKfEs\n1wwJCQnU09TkOyXDuAPkVy0yT0sGqKuuzlOnTinW+34QCX19ferp6bFLly6KJyyVtL1799La2lqp\ng4Dk5GQ6ODjw8OHDWaa/evWKxsbGigdU5MXDwyPfh0CQ5ODBgxUDfuzZs4fdu3f/YL2y8/HxYe3a\ntUtVO4U3b94oRuuaMWNGjt+xf/75h3379qWamlqev6tqamrs2bMnT58+nWugymQyrl29mtWsrdnA\nwIAbAV4FeBfgFYBr1NRY28CAtSpW5LYtW0Qol1EijEvQP//8Q2cjozwbB0UCdAKoCVAN4NBcykgz\n5mX+ZdbR0WHjxo05cuTIT6JhVXF79OgRbSWSXL+DVID2AJdk/P8YQG2AXXIpW1lfn+Hh4YyOjub3\n339PfX19SiQSdujQoUCXYYtaQEAALSwsGBwcrFT5RYsW5RqOCxcuzPfy83tNmzbl+fPnP7iNKVOm\nkJSHvJGRUYHvActkMvbv358TJ04s0HIl4dGjRxw2bBgtLCy4ZMmSHL9/9+/f54QJEz7Y6r5hw4bc\nuXOnog94amoqv+rXj40lEl5E3i3+ZQDPAKwnkXDs8OGiRXcZJMK4BJ0+fZot8whjGcBGABdlhEAk\nwF4Ap+ZSVltNjd7e3ty+ffsn17CqJERERLCSvn6eB0X/AWwD0CwjhL8EOCKXclX09ent7a0I4bZt\n2/LKlSsq3bdTp07R3Nycf//9t1LlHz16RFNTU4aHh2eZnpaWxooVKyp1Wdja2vqD96T9/PyytMiu\nW7cuL1++rFQdM4uMjKStra2im1hpc+vWLfbt25e2trbctGlTjt/N6OhoLl68mLa2tvmGcoUKFbh4\n8WJ69evHTnp6TMzjZzX7KwZgS4mEk8eOVdEnIBSWCOMSFBwcTMdy5XL9JXqdccYbl2nafsgvVWc/\nc9NUVxeXoj5CTEwM9bW0srRUz+/VDOCmbNPSAeoC1NfXZ8uWLZUOv+J06dIlmpub88SJE0ov4+7u\nzh9++CHH9P3797NZs2YfXD4pKYk6OjofPBO7efMmHRwcFO8nTJjAH3/8Uel6Znb06FFWrFixVN92\nuXTpEl1cXFi9enXu3bs3x+9r5q5Q+bbxALgMYEOAOpA38Hz/M3gzY7oJ5C3/mwM8l3EgX01fn0eP\nHlXR3guFIcK4BMXFxdFYV5cv8jgztgG4GPJL0dEAewMclK3cXwAbVK2q6l0p8xrVqMHD+ZwZvwOY\nCHBpxh/E1GxljgI019HJs99pSbt+/TotLS1z3PfNz/Hjx2lnZ5frLY0OHTrQx8fng+u4fft2lpDN\ny/sHRrxv5Obv789OnTopXdfsxo4dy0GDBhV6+ZIgk8n4119/0dnZmQ0bNlQ8/Sp7mfddobLfVzYE\n6AtwH+RtR8ZkC+MYgA8y/nbIIO95YZUxbwvAHi4uKthrobBEGJewkV5eXKChkWsIXALYEqAxQHOA\nAzLOmDOX6a2vz41leMSr0mLbtm3sZmCQ6/fwbcbZhgHAbgDDcynjqqfHzZs3q3o3SMofSFG+fHnu\n2bNH6WVSUlJYs2ZN+vv757o+S0tLpcZFDwwMZMeOHZXaZrVq1RQNyqKiomhgYFDoPreJiYmsUaNG\ngfZZVdLT07l37146ODiwXbt2eV6ev3v3Lr29vamnp0dk/B3IfBD4fbYwzvxKA7gGYIOM94kATXV1\nS7Q/u/BxRBiXsODgYFaUSJiWxy9Vfq9HAE0lEsbHx6t6N8q8xMREmunr81Yhvoe7Gd9DaXhyT0RE\nBCtWrMht27YVaLklS5awS5cuud7umDBhAr/77jul1rNu3Tp+/fXXSpV1dXXN8iSmhg0bftSVhX/+\n+YeWlpZl5mENqamp3LRpE21tbdm3b988W7q/ffuWbZs3z9FeZGYeYWwEeaPPSgDvZ5o+TlubCz/Q\n5UwoPdQhlKgGDRrAsUkTTNLRAQuwXAqAryQSjB03DgYGBsVVvc+GRCLBoqVL0UsiwdsCLBcJoKdE\nggWLF0NfX7+4qqeU58+fo0OHDvj2228xdOhQpZd79uwZFi9ejFWrVkFNTS3LvISEBPj4+GD06NFK\nrevhw4eoUqWKUmVr1qyJu3fvKt63a9cOJ0+eVLre2TVu3Bje3t4YNmwYyIL8NqmGlpYWvv76a9y7\ndw9NmzZF69atMWLECDx58iRLOTMzM9iam6NutuXVkLsYALEAPAD0AxR/V6qnpuJ5RERR7oJQjEQY\nq8BOf3+csbXFt9rakClRPgFAXz09mLdpgzk//ljc1ftsjBwzBh7jx6OlRIJwJcpHAGglkcBtzBiM\nGTeuuKuXr7dv36Jjx44YNmwYxo8fX6Blp0yZglGjRsHBwSHHvJ07d6JVq1aoVKmSUut6+PAh7Ozs\nlCpbo0YN3LlzR/G+Xbt2OHXqlFLL5mXGjBmIiYnBunXrPmo9JUlPTw/ffvstwsLCYGlpiQYNGmDK\nlCmIjIxUlEl+9w662ZbL73BDAuAnAGEAQt5vB0BSQkJRVl0oTqo+Nf9cvX37li2dnNjSwIB/5tJA\niJC3rF4HsLq+Pod6eOT7/Fmh8JYtXkwDTU32hPwRlpn7csogb6HqKZHQSFeXv3xgNKqSEBMTQ2dn\nZ06fPr3Ay548eZKVKlXK9RK7TCajo6Njno+JzE3jxo158eJFpcqePXs2Swvt+Ph46uvrKx6oUFh3\n796lmZkZ79y581HrUZXnz59zzJgxNDMz4/z58xkfH89hAwbkaMGf3z3j9/eN9QDey3i/BODkceNU\nvXuCkkQYq1Bqaip3797N1k5OtNHT4xgdHf4AcKaaGgdLJDTR1aVb5848ceKE6MpUDGJiYjhv3jwa\nGRnR3NycZqamrGhiwooSCRsbGbGJkRErSiR0sLHhz8uXf3AkqpKQkJDAFi1acNy4cQX+mUhNTWWd\nOnXo6+ub6/xz586xevXqBRowwsLCgi9evFCq7KtXr2hiYpKl3s2bN8+1lXFBrV27lo0bNy7TB6z3\n7t2jp6cnra2tOaB/f7pl9IWXQt66fzrkI/QlZwTvcYDBGfNjIR/Br0GmcG5vYMCdO3eqercEJamR\nZeBmy2cgJCQEJ06cQHRUFDS1tGBubo4ePXqgQoUKqq7aJyE0NBTz5s3D9OnTUbVqVaxatQrLly+H\nnp4etLW1sXDhQnh6ekJdXR33799XXDI0MzND1apVoa6u+js6ycnJip+JrVu3FrhOP//8MwIDA3Hs\n2LEc94oBwNPTE02bNsU333yj1PoSExNhbm6OpKSkXNeXHUmYmZnh7t27sLCwAADMmjULMpkMCxcu\nLNC+5Lburl27omnTppgzZ85HrUvVrl+/jqlTp+J8UBDuk9gEYF62MnMA1AYwC8BTAAYA2gJYAqAi\ngLsAWhsa4vGbN9DR0SmxugsfQbXHAoJQvEJCQtivXz9F382aNWvS2NiY5cuXp62tLbdt21YmRjBL\nTU1lz5496e7uXqj6Pn/+nGZmZnm24H3x4gWNjY0LNJBGaGgoa9SoUaB6NG3aNEsL6pMnT7Jp06YF\nWkdenj17RktLy0KN7FUa9enalTMK0dqfACdoa/O7jOFHhbJB9Yf7glAMQkNDMWDAADg6OuLPP/9U\nTL9z5w40NDQwZ84cPHjwAEOHDoWmpqYKa/ph6enpGDx4MKRSKXbu3Fmo+k6dOhXDhw9HzZo1c52/\nefNm9O/fH8bGxkqvsyAtqd/L3qK6WbNmCAkJQVxcXIHWkxsbGxusWbMGX375JRITEz96faq2ZNUq\nbNbXx7kCLncEwF49PYydOLE4qiUUExHGwifl5s2bihDeu3dvrl1eBg4ciJEjR0JbW1sFNSwYkhgz\nZgxevHgBX1/fQtX53LlzOH36NGbNmpXrfKlUio0bN8Lb27tA642IiFC6JfV72VtU6+rqokmTJjh3\nrqCRk7t+/frhiy++wNSpU4tkfapUrVo1/OHvDzeJBEFKLnMQwGCJBPsCA2Fra1uc1ROKmAhj4ZPw\nPoTr1auXZwg7OjrC398fv/zyiwpqWHAkMWXKFPz33384ePAg9PT0CrwOqVSKsWPHYtmyZXn2Tz9w\n4Om5MmAAACAASURBVADs7OxQv379Aq27IN2a3st+ZgwUTRenzFavXo1Dhw7h6NGjRbZOVenQoQN8\nAwMxyNAQgyQSXETOLk4EcApAP319jDY2xpHTp9GsWbOSr6zwcVR7lVwQPk5oaCj79++f7/NiHR0d\n6e/vX+ZapM+ePZuOjo4f1Yp71apVbNeuXb777uLiwj/++KPA63ZzcyvwcJS3bt1itWrVskw7f/48\nnZycCrz9/Jw4cYK2trZ8+/Ztka5XVSIjI7li2TJWK1+ejoaGHCKRcIyGBvsBtNfSYg1bW65ZvZqx\nsbGqrqpQSKI1tVAm3bx5E/Pnz8/zLBiQnwnPnTsXvXr1Uqq1b2myfPlybN68GWfOnIGVlVWh1vHq\n1SvUrVsXZ86cQe3atXMtc+vWLbRv3x6PHj0q8CXwhg0bYv369WjSpInSy6SmpqJcuXKIjY1VtPJN\nTU2Fubk5IiIiYGZmVqA65Gfy5Ml4+vQp9uzZU+a+/7zIZDKcPXsW4eHhiI+Ph5qaGi5cuICgoCCM\nHTsWU6ZMgZGRkaqrKRSGig8GhM9McnIyAwICuHXrVq5fv567du3iw4cPlV4+NDSUAwYMyPdMuF69\nety/f3+ZOxN+b8OGDbSzs+Pjx48/aj1Dhgzh5MmT8y0zbtw4fv/994Vav6mpKV+/fl3g5RwcHHjz\n5s0s07p06UI/P79C1SMv7969Y+3atZV6+lRZ9/DhQw4ZMoQWFhZctmwZ3717x5SUFM6ePZtv3rxR\ndfUEJYgwFkrEgwcPOG3yZFoYGrJVuXIcrK/Pr/X06GZoSFNdXXZv25ZHjhzJc8AJZUK4bt263L9/\nf4EGrShtfv/9d9ra2vL+/fsftZ6LFy/SxsYm38uWcXFxNDEx4ZMnTwq8/tjYWEokkkId8PTo0YP7\n9u3LMm3JkiUcVwyjRV27do0WFhZ89OhRka+7NAoNDWXv3r1ZoUIFDhw4kABoaGjIuXPnMi4uTtXV\nE/IhwlgodqtXrqSpri4naWvzbi59IhMgf/5qAwMDtmnUKMs90ps3b34WIUyS+/bto7W1dY6zxoKS\nSqV0cnL64BnhunXr2Ldv30Jt48aNG6xdu3ahlp0yZQoXLVqUZdq///5b6PV9yKJFi+ji4lLmfz4K\n4sSJE9TS0srye2JhYcFffvlFqUdjCiVPhLFQrBbMns0aEgkfKDFQQTrASdrarFulCi9evEgPD498\nQ7hOnTqfRAiT5LFjx2hhYcGrV69+9LrWrVvH1q1b53vWKpPJWKdOHZ44caJQ2zhw4ABdXV0LteyW\nLVs4ePDg/2vvvuObqt4Hjn/SnXQxWlqwyKYsEVkioGwQ/GJBRGSqfB0MEVAEEUEEFBQE2XsLiKiA\niItVpooIiIwfe+9Zu0dyfn+k5du0TWeSm5Tn/XrlVXLuzT3PJW2enHPPPceiLCUlRRUpUiTXU2vm\nRUpKimrYsKGaMmWKzY/trCZNmmT176ZMmTJq6dKlKiUlReswRTqSjIXdrF61SpU1GNTVPM4e1M/N\nTRmsfJAAqlq1auq7774rFElYKfMCCkFBQWrXrl0FPtbNmzdVcHCwOnToULb7RUZGqqpVq+b7uvrU\nqVNV//798/XanTt3qscffzxTeUREhFq1alW+jpmTU6dOqaCgIHX48GG7HN/ZxMfHq88//1wVK1Ys\n2x6l9evXu+zYisJGkrGwC5PJpKqEhamtWSTbJqB8QPmlPqpk2J4CKiyLD4+qVasWqiSslLl7Njg4\n2CaLJSil1KuvvqoGDhyY436dO3dW06dPz3c9gwYNUhMnTszXa2/evKmKFCmSKQl88cUX6rXXXst3\nTDmZP3++qlWrlkpMTLRbHc7m3r17auTIkcrX19dqUn7iiSfU9u3btQ71gSfJWNjF1q1bVTU/P4vl\nCNMeTUEtzKF1/AXcbx1XqVKl0CVhpczzZoeEhKh169bZ5Hh//PGHCg0NzXF+6cuXL6siRYqoe/fu\n5buuDh06WF39KTeKFSumrl27ZlF26NAhVaFChXwfMycmk0m1b99evf/++3arw1ldu3ZNDRgwINN1\n5PSPtm3bqoMHD2od6gNLkrGwi+fbtlUzdLosE23T1AFb2SXje6AMOp1asGBBoUvCSil14sQJVapU\nqXxNtpGVlJQUVbduXbVkyZIc9/3www9Vnz59ClRfrVq11L59+/L9+qxaY0aj0e4jn69du6ZCQ0Nt\ncknAFZ05c0b17Nkz27EY3bp1K/BofpF3Mh2msIu9e/fSNpv5ZIYDwUBjYHsW2wOBRgEBlCpVyimW\nL7SlCxcu0KpVK0aPHk3Xrl1tcsyFCxfi5eVFz549s90vOTmZefPm0b9//wLVl595qdPLalpMNzc3\n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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7f796adfd490>"
       ]
      }
     ],
     "prompt_number": 29
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec['fridge'].upstream_meter() == elec['microwave'].upstream_meter()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 30,
       "text": [
        "True"
       ]
      }
     ],
     "prompt_number": 30
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec['fridge'].upstream_meter()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 31,
       "text": [
        "MeterGroup(meters=\n",
        "  ElecMeter(instance=1, building=1, dataset='REDD', site_meter, appliances=[])\n",
        "  ElecMeter(instance=2, building=1, dataset='REDD', site_meter, appliances=[])\n",
        ")"
       ]
      }
     ],
     "prompt_number": 31
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from nilmtk import MeterGroup\n",
      "from nilmtk.elecmeter import ElecMeterID"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 32
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "nilmtk.global_meter_group.from_list([ElecMeterID(3,1,'REDD'), \n",
      "                                       (\n",
      "                                            ElecMeterID(1,1,'REDD'),\n",
      "                                            (ElecMeterID(2,1,'REDD'), ElecMeterID(4,1,'REDD'))\n",
      "                                       )])"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 33,
       "text": [
        "MeterGroup(meters=\n",
        "  ElecMeter(instance=3, building=1, dataset='REDD', appliances=[Appliance(type='electric oven', instance=1)])\n",
        "  MeterGroup(meters=\n",
        "    ElecMeter(instance=1, building=1, dataset='REDD', site_meter, appliances=[])\n",
        "    MeterGroup(meters=\n",
        "      ElecMeter(instance=2, building=1, dataset='REDD', site_meter, appliances=[])\n",
        "      ElecMeter(instance=4, building=1, dataset='REDD', appliances=[Appliance(type='electric oven', instance=1)])\n",
        "    )\n",
        "  )\n",
        ")"
       ]
      }
     ],
     "prompt_number": 33
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from nilmtk import ElecMeter\n",
      "ElecMeter(meter_id=ElecMeterID(1,1,'x'))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 34,
       "text": [
        "ElecMeter(instance=1, building=1, dataset='x', appliances=[])"
       ]
      }
     ],
     "prompt_number": 34
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec.identifier"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 35,
       "text": [
        "(ElecMeterID(instance=1, building=1, dataset='REDD'),\n",
        " ElecMeterID(instance=2, building=1, dataset='REDD'),\n",
        " ElecMeterID(instance=5, building=1, dataset='REDD'),\n",
        " ElecMeterID(instance=6, building=1, dataset='REDD'),\n",
        " ElecMeterID(instance=7, building=1, dataset='REDD'),\n",
        " ElecMeterID(instance=8, building=1, dataset='REDD'),\n",
        " ElecMeterID(instance=9, building=1, dataset='REDD'),\n",
        " ElecMeterID(instance=11, building=1, dataset='REDD'),\n",
        " ElecMeterID(instance=12, building=1, dataset='REDD'),\n",
        " ElecMeterID(instance=13, building=1, dataset='REDD'),\n",
        " ElecMeterID(instance=14, building=1, dataset='REDD'),\n",
        " ElecMeterID(instance=15, building=1, dataset='REDD'),\n",
        " ElecMeterID(instance=16, building=1, dataset='REDD'),\n",
        " ElecMeterID(instance=17, building=1, dataset='REDD'),\n",
        " ElecMeterID(instance=18, building=1, dataset='REDD'),\n",
        " ElecMeterID(instance=19, building=1, dataset='REDD'),\n",
        " (ElecMeterID(instance=3, building=1, dataset='REDD'),\n",
        "  ElecMeterID(instance=4, building=1, dataset='REDD')),\n",
        " (ElecMeterID(instance=10, building=1, dataset='REDD'),\n",
        "  ElecMeterID(instance=20, building=1, dataset='REDD')))"
       ]
      }
     ],
     "prompt_number": 35
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec.mains().total_energy()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 36,
       "text": [
        "167.76623618641219"
       ]
      }
     ],
     "prompt_number": 36
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# energy_per_meter = elec.energy_per_meter()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 37
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# energy_per_meter"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 38
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec['fridge'].total_energy(full_results=True).combined()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 39,
       "text": [
        "active    44.750925\n",
        "dtype: float64"
       ]
      }
     ],
     "prompt_number": 39
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# fraction = elec.fraction_per_meter()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 40
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec.available_power_ac_types()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 41,
       "text": [
        "{'active', 'apparent'}"
       ]
      }
     ],
     "prompt_number": 41
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec['fridge'].when_on().next().head()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 42,
       "text": [
        "2011-04-18 09:22:13-04:00    False\n",
        "2011-04-18 09:22:16-04:00    False\n",
        "2011-04-18 09:22:20-04:00    False\n",
        "2011-04-18 09:22:23-04:00    False\n",
        "2011-04-18 09:22:26-04:00    False\n",
        "Name: (power, active), dtype: bool"
       ]
      }
     ],
     "prompt_number": 42
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec['fridge'].min_on_power_threshold()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 43,
       "text": [
        "10"
       ]
      }
     ],
     "prompt_number": 43
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from nilmtk.electric import align_two_meters\n",
      "\n",
      "gne = align_two_meters(elec['fridge'], elec.mains())"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 44
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "head = gne.next().head()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 45
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "head.icol(0) - head.icol(1)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 46,
       "text": [
        "2011-04-18 09:22:12-04:00   -334.914978\n",
        "2011-04-18 09:22:15-04:00   -335.973297\n",
        "2011-04-18 09:22:18-04:00   -335.683350\n",
        "2011-04-18 09:22:21-04:00   -335.796661\n",
        "2011-04-18 09:22:24-04:00   -335.329987\n",
        "Freq: 3S, dtype: float32"
       ]
      }
     ],
     "prompt_number": 46
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "meter.dropout_rate(sections=sections)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 47,
       "text": [
        "0.0085459790443974705"
       ]
      }
     ],
     "prompt_number": 47
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 47
    }
   ],
   "metadata": {}
  }
 ]
}